You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 20:55:19