无法在runtim期间将复选框添加到wxpython GUI

2024-10-03 13:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在运行时向wxpythongui添加复选框,但它似乎没有显示出来。我的代码在下面。你知道吗

我试过跟帖<;Add checkbox in wxPython in runtime>;,但没有成功。我还使用wxFormBuilder查看它如何在初始化期间添加复选框;我能够验证这一点self.main窗口.p\u SelectionPanel是我要添加复选框的地方。我还检查了调试器,以确保每行代码至少运行一次。你知道吗

关于这个应用程序的更多背景知识:它是一个wxpythongui,其中嵌入了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()

Tags: key代码inselfadd序列复选框point
1条回答
网友
1楼 · 发布于 2024-10-03 13:25:57

此问题是由于使用多个线程造成的;请参阅上面的注释。我已经能够通过使用这里介绍的技术将复选框添加到主线程中:<;Sharing data between threads in Python>;。你知道吗

不过,这里建议使用一种更好的线程安全的方法来构造我的程序:<;WxPython: Periodically set value in TextCtrl not working>;。还有一种方法可以避免使用多线程。你知道吗

相关问题 更多 >