【发布时间】:2023-03-27 16:16:01
【问题描述】:
我试图让 PyQT GUI 在我的 python 应用程序上运行,我试图将它分成 2 个线程,以便在我的主运行循环运行时 GUI 会响应,但我无法得到它去。也许我误解了它。这是我尝试过的:
我的Window和Worker线程定义如下:
class Window(QWidget):
def __init__(self, parent = None):
QWidget.__init__(self, parent)
self.thread = Worker()
start = QPushButton("Start", self)
QObject.connect(start, SIGNAL("clicked()"), MAIN_WORLD.begin)
hbox = QVBoxLayout(self)
hbox.addStretch(4)
class Worker(QThread):
def __init__(self, parent = None):
QThread.__init__(self, parent)
if __name__ == '__main__':
MAIN_WORLD = World()
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
这似乎与在线示例非常接近。我的World 类正在运行一个循环,一旦用户单击“开始”,该循环就会无限循环,直到再次单击它。这是它的部分定义。
class World(QThread):
def __init__(self, parent = None):
QThread.__init__(self, parent)
self.currentlyRunning = False
//snip
def begin(self):
if self.currentlyRunning:
self.currentlyRunning = False
else:
self.currentlyRunning = True
self.MethodThatDoesUsefulStuff()
编辑:我注意到我并没有真正“使用”我的工作线程。如何将我的世界线程创建为工作线程?
【问题讨论】:
标签: python multithreading pyqt