我可以在wxPython的列表控件中创建下拉组合框吗?

2 投票
1 回答
2608 浏览
提问于 2025-04-16 10:13

我正在创建一个 wx.ListCtrl(使用的是 wxPython 2.8.11.0 和 Python 2.7),它的样式设置为 style=wx.LC_REPORT|wx.LC_VRULES|wx.LC_SINGLE_SEL,里面有一个分数列(还有其他列)。我想知道是否可以让每个项目的分数显示为:

  1. 一个可以选择的下拉列表,里面有可能的分数

  2. 或者只允许在这个列里输入(我知道有这个功能,叫做 wx.lib.mixins.listctrl.TextEditMixin,但我从来没有用过)?

补充说明:这个功能需要在不同平台上都能使用。

1 个回答

4

你可以重写 OnBeginEdit 方法,检查用户点击的是哪一列,使用 event.m_col 来获取这个信息,然后根据情况采取相应的措施(比如决定是否阻止这个操作)。我觉得在单元格内直接做下拉菜单可能不太行,但你可以创建一个简单的对话框,当用户点击那一列时弹出来,功能是一样的。或者你可以看看 UltimateListCtrl,这是一个纯 Python 实现的 ListCtrl,可以实现你想要的几乎所有功能。

撰写回答