Форум сайта python.su
0
Необходимо при нажатии на кнопку мыши, запоминать координаты курсора.
def mouse_b1(event): # при нажатии на кнопку мыши global mouse1_x global mouse1_y mouse1_x, mouse1_y = event.x, event.y ... root.bind('<Button-1>', mouse_b1)
l.bind('<Button-1>', lambda event, f="Verdana": changeFont(event, f))
l.bind('<Button-1>', lambda event, f="Verdana": i=changeFont(event, f))
Отредактировано nick789 (Янв. 23, 2019 10:30:31)
Офлайн
294
nick789ну так используйте тогда классы, например. и ваши mouse1_x, mouse1_y делайте атрибутами класса.
Но есть мнение что использование глобальных переменных - это зло, с которым надо бороться.
nick789нет, совсем не так.
А вот как получить результат выполнения функции ??…Как то так ?
# from tkinter import * mouse_pos=[0, 0] def mouse_b1(event, mpos): # при нажатии на кнопку мыши print(mpos) # выводит предыдущее!! значение print(event.x, event.y) # выводит текущее значение mpos[0], mpos[1] = event.x, event.y root = Tk() root.bind('<Button-1>', lambda e: mouse_b1(e, mouse_pos)) root.mainloop()
# from tkinter import * mouse_pos=[0, 0] def mouse_b1(event): # при нажатии на кнопку мыши print(mouse_pos) # выводит предыдущее!! значение print(event.x, event.y) mouse_pos[0], mouse_pos[1] = event.x, event.y root = Tk() root.bind('<Button-1>',mouse_b1) root.mainloop()
[code python][/code]
Отредактировано PEHDOM (Янв. 24, 2019 13:17:55)
Офлайн
0
По сути Вы предлагаете глобальную переменную заменить на список. Чуть другой синтаксис все остальные проблемы теже. Так или иначе спасибо за ответ.
С ООП - буду разбираться.
Офлайн