允许从任何线程调用wxpython对象方法。

wxAnyThread的Python项目详细描述


wxAnyThread:允许wxPython对象上的方法从wxPython中的任何线程调用,更改GUI状态的方法只能从运行主事件循环的线程调用其他线程通常必须将
事件发布到gui线程,而不是直接调用方法。

虽然有用于此操作的内置快捷方式(例如wx.callafter),但它们不会捕获函数调用的完整语义。该模块提供了一种简单的方法,可以从任何线程*透明*调用方法,将返回值和异常传播回调用线程。


主接口是一个名为“any thread”的装饰器,可以将它应用于方法,使它们可以安全地从任何线程调用就像这样:

MyFrame类(wx.Frame):

@anythread
def GetSomeData():
dlg=MyQueryDialog(self,“输入一些数据”)
如果dlg.showmodel()==wx.id_ok:
resp=dlg.getresponse()
return int(resp)
否则:
raise nodataenterederor()

getsomedata方法现在可以从任何线程直接调用。
调用线程将阻塞,而主gui线程显示对话框,
,然后将根据需要接收返回值或异常。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带验证的java JavaScript链接生成器   java休眠外键而不是实体   使用正则表达式在java中分隔字符串的数组   爪哇/sdk/platformtools/adb,startserver失败   可以使用java URL连接通过Id获取html   java使用Maven构建类路径失败   java GUI最初未显示(netbeans)   java无法解析:com。安卓支持:supportv4:26.0.2   swing覆盖Java DefaultStyledDocument实现   JAVAlang.IllegalState异常LifeCycleCProcessor和ApplicationEventMulticaster在使用Spring引导时未初始化   JAXB Websphere jar与applicationl jar的java ClassCastException   继承获取父子类java的不兼容错误