[英]How to add image/icon in menu item on pysimplegui
我正在使用 PySimplegui 进行 UI 开发,想知道是否有一种方法可以添加菜单图标,如下图所示,这可以通过 Tkinter 完成并且工作正常,但我无法在 pysimplegui 中找到任何参考或链接会有很大帮助
在菜单项中期待这个(图像并排文本)
向菜单项添加图标很复杂。
这里通过tkinter代码一个一个给菜单项添加图标。
import PySimpleGUI as sg
sg.theme('LightGreen')
menu_def = [
['&File', ['&Open Ctrl-O', '&Save Ctrl-S', '&Properties', 'E&xit']],
['&Edit', ['&Paste', ['Special', 'Normal', ], 'Undo', 'Options::this_is_a_menu_key'], ],
['&Toolbar', ['---', 'Command &1', 'Command &2',
'---', 'Command &3', 'Command &4']],
['&Help', ['&About...']]
]
layout = [
[sg.Menu(menu_def, key='-MENUBAR-')],
[sg.Output(size=(60, 10))],
]
window = sg.Window("Title", layout, finalize=True)
images = []
# Menu 1 - File
for i in range(4):
image = sg.tk.PhotoImage(data=sg.EMOJI_BASE64_HAPPY_LIST[0:4][i])
images.append(image)
window['-MENUBAR-'].widget.children['!menu'].entryconfigure(i, image=image, compound='left')
# Menu 2 - Edit
for i in range(3):
image = sg.tk.PhotoImage(data=sg.EMOJI_BASE64_HAPPY_LIST[4:7][i])
images.append(image)
window['-MENUBAR-'].widget.children['!menu2'].entryconfigure(i, image=image, compound='left')
# Menu 2 - Edit - Paste
for i in range(2):
image = sg.tk.PhotoImage(data=sg.EMOJI_BASE64_HAPPY_LIST[7:9][i])
images.append(image)
window['-MENUBAR-'].widget.children['!menu2'].children['!menu'].entryconfigure(i, image=image, compound='left')
# Menu 3 - Toolbar
for i, j in enumerate((1, 2, 4, 5)):
image = sg.tk.PhotoImage(data=sg.EMOJI_BASE64_HAPPY_LIST[9:13][i])
images.append(image)
window['-MENUBAR-'].widget.children['!menu3'].entryconfigure(j, image=image, compound='left')
# Menu 4 - Help
for i in range(1):
image = sg.tk.PhotoImage(data=sg.EMOJI_BASE64_HAPPY_LIST[13])
images.append(image)
window['-MENUBAR-'].widget.children['!menu4'].entryconfigure(i, image=image, compound='left')
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Exit'):
break
print(event, values)
window.close()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.