【发布时间】:2015-08-17 09:27:43
【问题描述】:
我有一个控制一些硬件的 wxPython gui。 我需要一个按钮在功能运行时禁用。该函数还接收一个参数值
假设我有这个绑定到按钮按下的函数:
def button_press(self, event):
in_val = self.num_in.GetValue() #grabs a value from a NumCtrl
TheThread(in_val) #initiates the thread with argument
btn = event.GetEventObject()
btn.Disable() #disables button
此函数转到以下线程类:
class TheThread(Thread):
def __init__(self, in_val):
"""Init Worker Thread Class."""
Thread.__init__(self)
self.run(in_val)
def run(self, in_val):
print val
time.sleep(5)
wx.CallAfter(Publisher.sendMessage, "ctrl")
"""
threadsafe method to call a pub.subscribe that runs a
function to re-enable button
"""
这无法正常工作,因为 gui 在函数运行期间冻结,并且按钮没有正确禁用。
如何正确继承此参数以使其正常运行? 也许涉及 self.start() 方法?
【问题讨论】:
标签: python python-2.7 wxpython wxwidgets