Python中文
首页
教程
问答
标签
搜索
登录
注册
PyQt5多线程仍然冻结。如何提高绩效?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正试图为我所写的一些图像处理算法编写一个PyQt应用程序。问题是,这需要一些时间,并使应用程序冻结(直到它完成,但用户可能被迫关闭应用程序在同一时间)</p> <p>我试图理解如何实现多线程,但我似乎不能使它工作。这个例子只是在不同的线程上加载了一个大的图像,但它仍然使整个应用程序冻结。我肯定我在哪里犯了个错误</p> <pre><code>import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class App(QWidget): def __init__(self): super().__init__() self._unit_ui() def _unit_ui(self): label = QLabel(self) label.resize(700, 700) button = QPushButton(self) self.th = Thread(self) self.th.change_pixmap.connect(label.setPixmap) button.pressed.connect(self.th.start) self.show() class Thread(QThread): change_pixmap = pyqtSignal(QPixmap) def __init__(self, parent=None): QThread.__init__(self, parent=parent) self.isRunning = True def run(self): pixmap = QPixmap('gridscan.jpg') self.change_pixmap.emit(pixmap) app = QApplication(sys.argv) m = App() sys.exit(app.exec_()) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在埃伦的帮助下,我设法解决了这个问题。 我刚刚停止在第二个线程中使用QPixmap,用另一个函数导入图像,并将其传递(将pyqtSignal(QPixmap)更改为pyqtSignal(np.ndarray)),现在它可以完美地工作了! 谢谢</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
9 回答
如何在乒乓球游戏中阻止球
7 回答
如何在乘法和模中不乘空间?
9 回答
如何在乘法和除以2个不同的数字之间进行交换?
3 回答
如何在也是数据一部分的单个字符上拆分大字符串
4 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
6 回答
如何在事件wxWidgets中传递自定义数据
4 回答
如何在事件中使用lambda i=i?
5 回答
如何在事件中心只接收最近的数据
7 回答
如何在事件发生之前保持云函数运行?
6 回答
如何在事件发生后使页面重定向到同一页面
5 回答
如何在事件回调之间保持python生成器的状态
8 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
10 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
4 回答
如何在事件处理程序中访问外部对象?
2 回答
如何在事件循环中将协程打包为正常函数?
8 回答
如何在事件循环之外运行协同程序?
9 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
1 回答
如何在事件文件中只保留一份摘要?
8 回答
如何在事件模板中添加事件
6 回答