gpt4 book ai didi

python - 如何通过发布事件设置 wx.combobox 的值

转载 作者:太空宇宙 更新时间:2023-11-04 06:31:03 24 4
gpt4 key购买 nike

注意:这似乎是一个特定于 OSX 的问题。

下面的代码演示了我遇到的问题。我正在创建一个 wx.ComboBox 并试图通过发布一个 wxEVT_COMMAND_COMBOBOX_SELECTED 事件来模仿它的功能以用于测试目的......这个事件奇怪地适用于 wx.Choice,但它对 ComboBox 没有任何作用。

似乎没有其他事件可以发布到组合框,但也许我遗漏了什么。

我在 Mac OSX 10.5.8 上的 Python 2.5 上运行这段代码

import wx

app = wx.PySimpleApp()

def on_btn(evt):
event = wx.CommandEvent(wx.wxEVT_COMMAND_COMBOBOX_SELECTED,combobox.Id)
event.SetEventObject(combobox)
event.SetInt(1)
event.SetString('bar')
combobox.Command(event)
app.ProcessPendingEvents()


frame = wx.Frame(None)
panel = wx.Panel(frame, -1)
# This doesn't work
combobox = wx.ComboBox(panel, -1, choices=['foo','bar'])
# This works
#combobox = wx.Choice(panel, -1, choices=['foo','bar'])
combobox.SetSelection(0)
btn = wx.Button(panel, -1, 'asdf')
btn.Bind(wx.EVT_BUTTON, on_btn)
sz = wx.BoxSizer()
sz.Add(combobox)
sz.Add(btn)
panel.SetSizer(sz)
frame.Show()

app.MainLoop()

更新:我将组合框连接到 wx.EVT_COMBOBOX 的处理程序以查看那里捕获的事件类型,并且我得到了与 wxEVT_COMMAND_COMBOBOX_SELECTED 匹配的 id 10016 ... 所以生成此命令事件当然应该导致 ComboBox 更新。

最佳答案

这似乎是 OSX 的一个特定错误。这两种选择在 windowsXP 中都能完美运行。

关于python - 如何通过发布事件设置 wx.combobox 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2685354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com