我已经看过 http://wiki.wxpython.org/LongRunningTasks http://wiki.wxpython.org/CallAfter 并在谷歌搜索了很多,但没有找到答案,我的问题。因为在我看来,这将是很多代码,这是一个理论问题,我希望没有代码就可以。与互动在两个方向上的wxPython帧从另一个线程
我想要做一个例子:我有一个网格(wx.grid)与主线程中的复选框。然后,我开始一个新的线程(thread.start_new_thread),在其中遍历所有行(每行1秒),并检查复选框是否已设置。如果确定了,则完成一些工作。
这是工作,如果我读出所有行之前我开始线程。但我需要读出而线程正在运行,因为用户应该有能力取消选中或检查另一个复选框!但是,如果我在新线程中读出它,有时会出现“NonType Object is callable”错误。我认为,因为wx.CallAfter应该用于与其他线程中的网格进行交互。但CallAfter我无法获得返回值。
我不知道如何解决这个问题。也许一些有更多线程经验的人有一些想法?如果您需要其他数据,请询问,但我认为我的示例包含所有必要的信息。
我想绑定复选框更改事件到一个处理程序,将做“一些工作”是不可能的,因为“一些工作”是太长了吗? – Fenikso
是的,没错。在工作中,我会做一些事情,比如telnet请求等。因此,事件会使软件无响应。现在,它解决了没有事件发生的方式,并且当用户选中所有复选框时,他使用按钮启动过程。 – timmornYE
嗯,我有你的问题的解决方案,但我不知道如何阅读网格中的复选框值。你有最小的可运行的例子来证明你的问题吗? – Fenikso