无法在运行时将复选框添加到 wxpython GUI
Unable to add checkbox to wxpython GUI during runtime
我试图在运行时向 wxpython gui 添加复选框,但它似乎没有显示出来。我的代码如下。
我已尝试遵循 post < Add checkbox in wxPython in runtime >,但无法使其正常工作。我还使用 wxFormBuilder 来查看它如何在初始化期间添加一个复选框;我能够验证 self.mainWindow.p_SelectionPanel 是我要添加复选框的地方。我还检查了调试器以确保每一行代码至少运行一次。
关于该应用程序的更多背景知识:它是一个 wxPython GUI,其中嵌入了 matplotlib 图。我正在尝试从传入的串行端口流生成复选框,以便用户可以在运行时 show/hide 系列。 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()
这个问题是由使用多线程引起的;见上面的评论。我已经能够 "hand off" 通过使用此处介绍的技术向主线程添加复选框:< Sharing data between threads in Python >。
不过,这里建议使用一种更好的、线程安全的方法来构建我的程序:< WxPython: Periodically set value in TextCtrl not working >。还有一种方法可以避免使用多线程。
我试图在运行时向 wxpython gui 添加复选框,但它似乎没有显示出来。我的代码如下。
我已尝试遵循 post < Add checkbox in wxPython in runtime >,但无法使其正常工作。我还使用 wxFormBuilder 来查看它如何在初始化期间添加一个复选框;我能够验证 self.mainWindow.p_SelectionPanel 是我要添加复选框的地方。我还检查了调试器以确保每一行代码至少运行一次。
关于该应用程序的更多背景知识:它是一个 wxPython GUI,其中嵌入了 matplotlib 图。我正在尝试从传入的串行端口流生成复选框,以便用户可以在运行时 show/hide 系列。 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()
这个问题是由使用多线程引起的;见上面的评论。我已经能够 "hand off" 通过使用此处介绍的技术向主线程添加复选框:< Sharing data between threads in Python >。
不过,这里建议使用一种更好的、线程安全的方法来构建我的程序:< WxPython: Periodically set value in TextCtrl not working >。还有一种方法可以避免使用多线程。