PySimpleGui中能否分离右键菜单项与触发事件字符串?
PySimpleGui右键菜单自定义事件名的实现
当然可以实现菜单项文本和触发事件字符串分离的需求,只需要在定义右键菜单的菜单项时,用元组替代单纯的字符串即可,元组格式为(显示文本, 自定义事件名)。
修改你提供的Listbox代码如下:
sg.Listbox( "", key="-eventListbox-", size=(50, 10), # 用元组定义菜单项,第一个元素是显示文本,第二个是自定义事件名 right_click_menu=['&Right', [('Open', '-eventOpen-')]], select_mode=sg.LISTBOX_SELECT_MODE_EXTENDED, enable_events=True, ),
后续在事件循环中,就可以通过判断自定义的事件名来响应操作:
while True: event, values = window.read() if event == sg.WIN_CLOSED: break # 捕获自定义的右键菜单事件 if event == '-eventOpen-': # 这里写你需要执行的操作,比如获取选中的列表项 selected_items = values["-eventListbox-"] print(f"打开选中项: {selected_items}")
这种方式还支持给多个菜单项设置独立的自定义事件名,示例如下:
right_click_menu=['&Right', [('Open', '-eventOpen-'), ('Delete', '-eventDelete-'), ('Edit', '-eventEdit-')]]
内容的提问来源于stack exchange,提问作者divingTobi
相关产品推荐
相关产品推荐

