Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 4, 2016 17:56:05

vito-Z80
Зарегистрирован: 2015-09-10
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter фокус мыши

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

вообщем нужна аналогия css

a:hover {
background: #000;
}

или же нужно брать координаты мыши с холста и сравнивать их с координатами площади прямоугольника ?

Офлайн

#2 Апрель 4, 2016 22:15:03

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

tkinter фокус мыши

А чем FocusIn FocusOut не подошли?

Офлайн

#3 Апрель 5, 2016 03:45:55

vito-Z80
Зарегистрирован: 2015-09-10
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter фокус мыши

4kpt_IV
FocusIn
как я понял FocusIn FocusOut просто задает и снимает фокус всего окна
примеров не нашел

Офлайн

#4 Апрель 5, 2016 08:03:56

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

tkinter фокус мыши

Это событие, как Button-1 или Mousehell или KeyPress.
Задает .focus_force() или .focus_set()

Офлайн

#5 Апрель 5, 2016 14:19:20

vito-Z80
Зарегистрирован: 2015-09-10
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter фокус мыши

4kpt_IV
Это событие, как Button-1 или Mousehell или KeyPress.Задает .focus_force() или .focus_set()
Можно пару примеров, если не сложно, с фокусировкой геометрической фигуры?

Офлайн

#6 Апрель 27, 2016 06:18:56

vito-Z80
Зарегистрирован: 2015-09-10
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter фокус мыши

Мне нужно было это:

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 чет не пашут, или я с ними не то что-то делаю.

Офлайн

#7 Апрель 27, 2016 17:05:36

vito-Z80
Зарегистрирован: 2015-09-10
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter фокус мыши

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)

Отредактировано vito-Z80 (Апрель 27, 2016 17:37:42)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version