Tkinter:将图标添加到菜单项中
Tkinter: Adding icon into menu items
我有一个功能完美的 TkInter 右键单击上下文菜单,有 4 个项目和 1 个分隔符,但是我试图找出如何能够显示每个项目的图标,我已经设法让这些项目显示为图标,但这会消除实际文本的可见性,这并不理想。有谁知道如何让文字显示在图标的右边?
我将粘贴代码片段和实际菜单。
try:
def rClick_Copy(e, apnd=0):
e.widget.event_generate('<Control-c>')
def rClick_Cut(e):
e.widget.event_generate('<Control-x>')
def rClick_Paste(e):
e.widget.event_generate('<Control-v>')
def rClick_SelectA(e):
e.widget.select_range(0, 'end')
e.widget.icursor('end')
e.widget.focus()
nclst=[
('Cut', lambda e=e: rClick_Cut(e)),
('Copy', lambda e=e: rClick_Copy(e)),
('Paste', lambda e=e: rClick_Paste(e)),
('Seperator', ''),
('Select All', lambda e=e: rClick_SelectA(e)),
]
rmenu = Menu(None, tearoff=0, takefocus=0)
for (txt, cmd) in nclst:
if txt == 'Seperator':
rmenu.add_separator()
continue
rmenu.add_command(label=txt, command=cmd,) #image=self._img4 <add this in when using icons.
rmenu.tk_popup(e.x_root+40, e.y_root+10,entry="0")
except TclError:
print ' - rClick menu, something wrong'
pass
右键菜单:
带图标的右键单击菜单:
与按钮、菜单按钮和标签一样,菜单项可以同时支持文本和图像。为此,您必须使用 compound
选项告诉 tkinter 您希望图像相对于文本出现的位置。可用的选项值为 bottom、center、left、none、right 和 top。
例如,要使图像显示在左侧,请使用 compound='left'
:
rmenu.add_command(label=txt, image=self._img4, compound='left', command=cmd)
注意:有效位置在某种程度上取决于平台。例如,在 OSX 上,无论您将 compound
设置为什么,图像似乎总是出现在文本的左侧。
我有一个功能完美的 TkInter 右键单击上下文菜单,有 4 个项目和 1 个分隔符,但是我试图找出如何能够显示每个项目的图标,我已经设法让这些项目显示为图标,但这会消除实际文本的可见性,这并不理想。有谁知道如何让文字显示在图标的右边?
我将粘贴代码片段和实际菜单。
try:
def rClick_Copy(e, apnd=0):
e.widget.event_generate('<Control-c>')
def rClick_Cut(e):
e.widget.event_generate('<Control-x>')
def rClick_Paste(e):
e.widget.event_generate('<Control-v>')
def rClick_SelectA(e):
e.widget.select_range(0, 'end')
e.widget.icursor('end')
e.widget.focus()
nclst=[
('Cut', lambda e=e: rClick_Cut(e)),
('Copy', lambda e=e: rClick_Copy(e)),
('Paste', lambda e=e: rClick_Paste(e)),
('Seperator', ''),
('Select All', lambda e=e: rClick_SelectA(e)),
]
rmenu = Menu(None, tearoff=0, takefocus=0)
for (txt, cmd) in nclst:
if txt == 'Seperator':
rmenu.add_separator()
continue
rmenu.add_command(label=txt, command=cmd,) #image=self._img4 <add this in when using icons.
rmenu.tk_popup(e.x_root+40, e.y_root+10,entry="0")
except TclError:
print ' - rClick menu, something wrong'
pass
右键菜单:
带图标的右键单击菜单:
与按钮、菜单按钮和标签一样,菜单项可以同时支持文本和图像。为此,您必须使用 compound
选项告诉 tkinter 您希望图像相对于文本出现的位置。可用的选项值为 bottom、center、left、none、right 和 top。
例如,要使图像显示在左侧,请使用 compound='left'
:
rmenu.add_command(label=txt, image=self._img4, compound='left', command=cmd)
注意:有效位置在某种程度上取决于平台。例如,在 OSX 上,无论您将 compound
设置为什么,图像似乎总是出现在文本的左侧。