我正在使用PySimplegui进行UI开发,想知道是否有方法添加菜单图标,如下图所示,这可以用Tkinter完成,并且工作正常,但我未能在pysimplegui中找到任何参考,任何参考或链接都将是一个很大的帮助
在菜单项中应包含此内容(图像与文本并排)
mwngjboj1#
不完全是你要找的,但考虑另一种可能性。你可以在菜单标签中放入Unicode字符。例如,你可以使用💾作为"全部保存“菜单标签,🗘作为”从磁盘全部重新加载“菜单标签。诀窍是为其他菜单标签找到合适的图像,这可能需要一点创造力。
xj3cbfub2#
向菜单项添加图标很复杂。在这里,通过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()
2条答案
按热度按时间mwngjboj1#
不完全是你要找的,但考虑另一种可能性。你可以在菜单标签中放入Unicode字符。例如,你可以使用💾作为"全部保存“菜单标签,🗘作为”从磁盘全部重新加载“菜单标签。诀窍是为其他菜单标签找到合适的图像,这可能需要一点创造力。
xj3cbfub2#
向菜单项添加图标很复杂。
在这里,通过tkinter代码逐个向菜单项添加图标。