当前位置: 首页 > 编程笔记 >

解决PySide+Python子线程更新UI线程的问题

孙池暝
2023-03-14
本文向大家介绍解决PySide+Python子线程更新UI线程的问题,包括了解决PySide+Python子线程更新UI线程的问题的使用技巧和注意事项,需要的朋友参考一下

在我开发的系统,需要子线程去运行,然后把运行的结果发给UI线程,让UI线程知道运行的进度。

首先创建线程很简单

def newThread(self):
 d = Data()
 print '子线程的运行'
t1 = threading.Thread(target=newThread)
t1.setDaemon(True)
t1.start()

之后我发现用子线程去调用UI线程是行不通的,只能通过信号和槽来实现,于是

首先,定义一个类,让他实现PySide.QtCore.QObject类

class Data(PySide.QtCore.QObject): 
 #定义信号
 mySignal = Signal()

 def __init__(self): 
  #这句话很重要
  super(Data, self).__init__()
 def run(self):
  mySignal.emit()

然后再把主线程的方法绑定到该槽上去

QtCore.QObject.connect(Data的实例,QtCore.SIGNAL('mySignal()'),'主线程的方法')

最后,就可以在子线程执行run方法的时候,就会调用UI线程的方法

以上这篇解决PySide+Python子线程更新UI线程的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Android子线程与更新UI问题的深入讲解,包括了Android子线程与更新UI问题的深入讲解的使用技巧和注意事项,需要的朋友参考一下 前言 在Android项目中经常有碰到这样的问题,在子线程中完成耗时操作之后要更新UI,下面就自己经历的一些项目总结一下更新的方法。话不多说了,来一起看看详细的介绍吧 引子: 情形1 运行结果:正常运行!!! 情形二 运行结果:异常     and

  • 本文向大家介绍详解Android中OkHttp3的例子和在子线程更新UI线程的方法,包括了详解Android中OkHttp3的例子和在子线程更新UI线程的方法的使用技巧和注意事项,需要的朋友参考一下 okHttp用于android的http请求。据说很厉害,我们来一起尝尝鲜。但是使用okHttp也会有一些小坑,后面会讲到如何掉进坑里并爬出来。 首先需要了解一点,这里说的UI线程和主线程是一回事儿。

  • 问题内容: 我刚刚开始进行android开发,并且更新UI确实使我很烦:/ 到目前为止,这是我一直在努力的工作- 它工作正常,但是每个人都说要在主线程中做图形,所以我正在尝试(但失败)将其传递给另一个线程。麻烦的是,我真的不知道怎么做,因为我从未真正使用过线程。 Google给出的有关使用Threads的示例似乎并不十分清楚,我也无法真正按照自己的意愿去做。我可以请某人在这里给我一个最基本的例子,

  • 问题内容: 我有以下代码: 我希望进度条位于单独的线程中,因此它不会冻结应用程序,但是我似乎找不到解决方法。 谁能帮忙吗? 问题答案: 我认为您可能会误会。您需要在单独的线程中进行工作,以免冻结应用程序。但是您还希望能够更新进度条。您可以通过使用创建工作人员类来实现此目的。QThread能够发出信号,您的UI可以侦听并采取适当的行动。 首先,让我们创建您的worker类。 因此,既然您拥有一个工人

  • 问题内容: 我对android完全陌生,只想知道它是否是在主线程外更新UI的任何可行且可行的方法。仅从我的代码中,我就在下面列出了这些代码;根本不可能。但是, 我只想使用另一个线程来更新UI 。请事先帮助我! 问题答案: 使用activity.runOnUiThread

  • 我正在编写一个Android应用程序,它连接到蓝牙设备,读取设备发送的数据,将其添加到AChartEngine图形中,并在文本视图中显示数据。 我的Bluetooth代码与BluetoothChat示例代码中的线程实现非常相似(它与SDK一起提供)。我可以在LogCat中看到< code>ConnectedThread循环正在执行并因此获得新数据,但我的TextView在7行之后停止更新,图形间歇