在QThread中使用QWidget,需要进行以下步骤:
下面是一个示例代码:
from PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout
from PyQt5.QtCore import QThread
import sys
class CustomWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
layout = QVBoxLayout()
self.setLayout(layout)
def paintEvent(self, event):
# 在此处编写绘制界面的逻辑
pass
class CustomThread(QThread):
def __init__(self, parent=None):
super().__init__(parent)
self.widget = CustomWidget()
self.app = QApplication(sys.argv)
def run(self):
self.widget.setParent(self.app)
self.widget.show()
sys.exit(self.app.exec_())
# 在主线程中创建并启动自定义线程
thread = CustomThread()
thread.start()
这样,CustomWidget的界面就可以在QThread中显示出来了。需要注意的是,在run函数中,要调用sys.exit来确保程序在线程结束后能够正常退出。
领取专属 10元无门槛券
手把手带您无忧上云