gpt4 book ai didi

python - 将计数器从 python 线程传递到 wxpython gage?

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

我正在尝试将计数器从 python COM 线程传递回 wxpython 选项卡面板。任何人都有一个可行的解决方案。下面是我的一些代码:

该类与我的 wxPython 代码分开,但被调用并将数据发送到该线程。

class Log_COM_thread(Thread):
............
def run(self):<br/>
.............<br/>
int_log_cnt = int_log_cnt + 1<br/>
int_log.TabPanel.gauge.SetValue(int_log_cnt)<br/>
if int_log_cnt == 64:<br/>
int_log.TabPanel.Int_Log_Status.SetLabel('Extraction Complete')

单独的模块 int_log,该计数器值被发送到,如下所示:

class TabPanel(wx.Panel):<br/>
def __init__(self, parent):<br/>
self.gauge = wx.Gauge(self, range=72, size=(250, 25))<br/>
.....and then more wxpython code.

我遇到的错误是:

Exception in thread Thread-8:<br/>
Traceback (most recent call last):<br/>
File "F:\Python27\lib\threading.py", line 551, in __bootstrap_inner
self.run()<br/>
File "F:\Documents and Settings\swhite\Desktop\OG GUI Working Jan 13\nbm.py", line 267, in run<br/>
int_log.TabPanel.gauge.SetValue(int_log_cnt)<br/>
AttributeError: type object 'TabPanel' has no attribute 'gauge'

我如何从外部线程将计数器发送回 wxpython 中的仪表。任何有关如何执行此操作的帮助都将非常有帮助。

最佳答案

您不能直接从单独的线程调用 wx 方法。您需要使用 wxPython 线程安全方法之一来与主 GUI 线程进行通信。它们是wx.CallAfter、wx.CallLater 和wx.PostEvent。

wxPython wiki 上有很多关于线程和 wx 的信息。 。我还写了一个tutorial讨论可能对您有帮助的主题。

关于python - 将计数器从 python 线程传递到 wxpython gage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14651314/

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