Найти - Пользователи
Полная версия: tkinter фокус мыши
Начало » Python для новичков » tkinter фокус мыши
1
vito-Z80
Подскажите в tkinter есть обработка наведения мыши на созданную на холсте фигуру ?
То есть есть много прямоугольников на холсте
при наведении мыши на конкретный прямоугольник:
1) прямоугольник меняет цвет фона
мышь ушла с прямоугольника:
2) прямоугольник принял родной цвет

вообщем нужна аналогия css
a:hover {
background: #000;
}

или же нужно брать координаты мыши с холста и сравнивать их с координатами площади прямоугольника ?
4kpt_IV
А чем FocusIn FocusOut не подошли?
vito-Z80
4kpt_IV
FocusIn
как я понял FocusIn FocusOut просто задает и снимает фокус всего окна
примеров не нашел
4kpt_IV
Это событие, как Button-1 или Mousehell или KeyPress.
Задает .focus_force() или .focus_set()
vito-Z80
4kpt_IV
Это событие, как Button-1 или Mousehell или KeyPress.Задает .focus_force() или .focus_set()
Можно пару примеров, если не сложно, с фокусировкой геометрической фигуры?
vito-Z80
Мне нужно было это:

from tkinter import *
root = Tk()
root.geometry('600x600')
def focIn(event):
    print('Focus')
    canv.config(bg='yellow')
def focOut(event):
    print('No Focus')
    canv.config(bg="blue")
def clickMouse(event):
    print('Click to Canvas')
    canv.config(bg='green')
def clickOff(event):
    print('Mouse not push')
    canv.config(bg='yellow')
canv = Canvas(root, width=100, height=100, bg="blue", cursor="hand2")
canv.bind('<Enter>',focIn)
canv.bind('<Leave>',focOut)
canv.bind('<Button-1>',clickMouse)
canv.bind('<ButtonRelease-1>',clickOff)
canv.place(x=256, y=256)
mainloop()

Enter и Leave
FocusIn FocusOut чет не пашут, или я с ними не то что-то делаю.
vito-Z80
rectangle=canv.create_rectangle('10', '10', '40', '40', width='1', fill='red')
#rectangle.bind('<Enter>', func)


AttributeError: ‘int’ object has no attribute ‘bind’

подскажите как сделать правильно ?

нашел ответ =
canv.tag_bind(rectangle,'<Enter>', func)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB