Курсор опции Tkinter в классе меню - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь отобразить другой курсор, когда мышь прибывает на элементы меню, я думал, что для этого вам нужно было добавить опцию cursor='something' в опции при создании меню

try:
  import tkinter as tk
except ImportError:
  import Tkinter as tk

class Settings:
    def __init__(self, master):
        # Elements of the menu
        self.master=master
        self.menu = tk.Menu(root, fg="red")
        self.subMenu = tk.Menu(self.menu, cursor="hand1")

    def openMenu(self):
        # Configuration of the menu
        self.menu.add_cascade(label="Options", menu=self.subMenu)
        self.addOptionsSubMenu()
        self.master.config(menu=self.menu)

    def addOptionsSubMenu(self):
        # Add elements at the sub menu
        self.subMenu.add_command(label="Quit", command=self.quit)
        self.subMenu.add_command(label="Do nothing", command=self.passa)

    # Quit the function
    def quit(self):
        exit()

    # Do nothing
    def passa(self):
        pass

root = tk.Tk()
app = Settings(root)
app.openMenu()
root.mainloop()

Но так как курсор не меняется, как мне это сделать?

1 Ответ

0 голосов
/ 10 января 2019

В документах для tkinter Menu указано, что опция курсора обозначает "The cursor that appears when the mouse is over the choices, but only when the menu has been torn off". Так что я не думаю, что вы можете делать то, что хотите. Только когда ваше подменю было отсоединено (оторвано), вы можете видеть, как меняется курсор. Вот демо.

import tkinter as tk

class Settings:
  def __init__(self, master):
    # Elements of the menu
    self.master=master
    self.menu = tk.Menu(root, fg="red")
    self.subMenu = tk.Menu(self.menu, <b>cursor="plus"</b>)

  def openMenu(self):
    # Configuration of the menu
    self.menu.add_cascade(label="Options", menu=self.subMenu)
    self.addOptionsSubMenu()
    self.master.config(menu=self.menu)

  def addOptionsSubMenu(self):
    # Add elements at the sub menu
    self.subMenu.add_command(label="Quit", command=self.quit)
    self.subMenu.add_command(label="Do nothing", command=self.passa)

  # Quit the function
  def quit(self):
    exit()

  # Do nothing
  def passa(self):
    pass

root = tk.Tk()
app = Settings(root)
app.openMenu()
root.mainloop()

Demo

...