【发布时间】:2015-01-06 21:30:34
【问题描述】:
我试图在运行时向 wxpython gui 添加复选框,但它似乎没有出现。我的代码如下。
我已尝试关注帖子 Add checkbox in wxPython in runtime>,但无法使其正常工作。我还使用 wxFormBuilder 来查看它是如何在初始化期间添加复选框的;我能够验证 self.mainWindow.p_SelectionPanel 是我要添加复选框的位置。我还检查了调试器,以确保每一行代码至少运行一次。
有关该应用程序的更多背景信息:它是一个 wxPython GUI,其中嵌入了 matplotlib 图。我正在尝试从传入的串行端口流中生成复选框,以便用户可以在运行时显示/隐藏系列。 point 是一个字典,键为系列名称,系列值为字典值。
如果您需要更多上下文,请告诉我。
提前感谢您的帮助。
def addNewCheckBoxes(self,point):
sizer = self.mainWindow.p_SelectionPanel.GetSizer()
addedCheckBox = False
for key in point.keys():
if key not in self.cbList.keys():
self.cbList[key] = wx.CheckBox(self.mainWindow.p_SelectionPanel)
sizer.Add(self.cbList[key])
addedCheckBox = True
if addedCheckBox:
self.mainWindow.p_SelectionPanel.SetSizer(sizer)
self.mainWindow.p_SelectionPanel.Layout()
【问题讨论】:
-
在主窗口上调用布局,因为它的大小可能已经改变
-
非常感谢您的建议!我试过这个,但复选框没有出现在 GUI 上。我认为问题可能是我使用了两个线程:主线程和一个线程来管理串行数据检索/绘图更新。我会进一步调查...
-
不确定 wx,但在 tk 中,所有 GUI 操作都必须在一个线程上。一般没有理由让 GUI 多线程。
标签: python python-2.7 checkbox wxpython runtime