Cab*_*abu 3 python menu tkinter python-3.x
我得到什么:

我的代码:
self.menu_bar = tk.Menu(self)
...
self.read_menu = tk.Menu(self.menu_bar, tearoff=False)
self.menu_bar.add_cascade(label='Read', underline=0, state=tk.DISABLED, menu=self.read_menu)
self.read_menu.add_command(label='First Page', underline=0, image=self.read_first_image, compound=tk.LEFT,
command=self.menu_read_first, accelerator='Home', state=tk.DISABLED)
self.read_menu.add_command(label='Last Page', underline=1, image=self.read_last_image, compound=tk.LEFT,
command=self.menu_read_last, accelerator='End')
self.read_menu.add_command(label='Next Page', underline=0, image=self.read_next_image, compound=tk.LEFT,
command=self.menu_read_next, accelerator='PgDn')
self.read_menu.add_command(label='Previous Page', underline=0, image=self.read_previous_image, compound=tk.LEFT,
command=self.menu_read_previous, accelerator='PgUp', state=tk.DISABLED)
...
self.menu_bar.add_separator()
self.menu_bar.add_command(command=self.menu_read_first, image=self.read_first_image, state=tk.DISABLED)
self.menu_bar.add_command(command=self.menu_read_previous, image=self.read_previous_image, state=tk.DISABLED)
self.menu_bar.add_command(command=self.menu_read_next, image=self.read_next_image)
self.menu_bar.add_command(command=self.menu_read_last, image=self.read_last_image)
Run Code Online (Sandbox Code Playgroud)
可以看到,分隔符和图标没有显示在顶部菜单中,而是很好地显示在子菜单中
我做错了什么还是根本不可能?
如果你在 Windows 上,你不可能做你想做的事。Tkinter 不允许您将图标添加到菜单栏。我认为这与底层 tk 库使用的 Windows API 的限制有关。
注意:菜单栏是为菜单而不是命令而设计的。将命令放在菜单栏上可能会让用户感到沮丧,因为他们希望单击某个项目会显示菜单。