Как добавить пользовательское изображение в курсор при наведении курсора на окно tkinter python

Я хочу создать собственный курсор изображения, когда курсор находится над моим окном tkinter, примерно так:

Черный курсор

Однако, как бы я ни гуглил, я не могу найти, как добавить собственный курсор в мое окно tkinter, поэтому я застрял с белым курсором по умолчанию.

Курсор по умолчанию

Могу ли я в любом случае добавить пользовательское изображение к моему курсору, когда он наводится на мое окно tkinter?


person CDN    schedule 15.02.2021    source источник
comment
Здравствуйте, я думаю, это вам поможет. Имейте в виду, что приложения следуют настройке пользовательской темы в Windows.   -  person T0ny1234    schedule 15.02.2021
comment
Это ответ на ваш вопрос?   -  person AST    schedule 15.02.2021
comment
@AST Да, это ответ на мой вопрос. Спасибо!   -  person CDN    schedule 17.02.2021


Ответы (1)


Я предполагаю, что у вас уже есть пользовательское изображение, и это файл .cur, если нет, то это должны быть файлы cur, ani или xbm, которые являются единственными поддерживаемыми расширениями курсора. Когда у вас есть файл, вы можете указать его, используя опцию cursor главного окна, например:

from tkinter import *

root = Tk()
path = '@Norm.ani' # Path to the image followed by @
root['cursor'] = path # Set the cursor 

Button(root,text='Anything').pack(padx=10,pady=10) # Demo button to show cursor

root.mainloop()

Это применяет курсор ко всему окну, хотя есть виджеты, к которым пользовательские курсоры не применяются, например Menu.

Если вам нужен собственный курсор только для одного виджета, используйте параметр курсора этого виджета, например:

Button(root,text='Anything',cursor=path).pack(padx=10,pady=10) # Applies JUST to button

Почему мы используем '@'?

Из документов:

Вместо стандартного имени растрового изображения используйте строку «@», за которой следует путь к файлу .xbm.

В вашем случае файл ani или cur.

person Cool Cloud    schedule 15.02.2021