Python tkinter изменить, как изменить курсор без использования холста / виджетов? - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу изменить вид курсора, когда мышь находится в диапазоне пикселей, а когда он выходит за пределы этого диапазона, он меняется на обычный (я не хочу использовать холст / другие виджеты "cursor =" kwarg)

from tkinter import*

root = Tk()
root.geometry('500x500+0+0')

def change_cursor(event):
    if event.x in range(450,500):
        #change how the cursor looks


root.bind('<B1-Motion>', change_cursor)
root.mainloop()

1 Ответ

0 голосов
/ 27 апреля 2020

К сожалению, единственный способ сделать то, что вы хотите, это использовать root.config(cursor="cursor_name"). "watch" имя_ курсора предназначено для занятого курсора, а "" имя_ курсора предназначено для обычного курсора.

Также необходимо изменить событие "<B1-Motion>" (мышь , перетаскивая , левой кнопкой мыши). нажата), чтобы просто "<Motion>" событие (движение мыши, нет необходимости нажимать какие-либо кнопки мыши).

И, конечно же, вам нужно изменить курсор назад (else блок)

Вот фиксированный код:

from tkinter import*


root = Tk()
root.geometry("500x500+0+0")

def change_cursor(event):
    if event.x in range(450, 500):
        root.config(cursor="watch")
    else:
        root.config(cursor="")


root.bind("<Motion>", change_cursor)
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...