【发布时间】:2018-08-25 20:26:42
【问题描述】:
我编写了一个简单的 python GUI 代码,用于让我的代码休眠 10 秒。同时,图形用户界面应该在不冻结的情况下运行。不能通过定义主线程和辅助线程来实现吗?当我单击“运行”按钮时,pythonw.exe 已停止工作。有人对我如何解决这个问题有任何想法吗?谢谢你。
import sys, threading
from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import pyqtSlot
from PyQt4.QtGui import *
class Window(QtGui.QMainWindow):
def __init__(self):
super(Window,self).__init__()
self.setGeometry(400,150, 550, 500)
self.setWindowTitle("my first program")
self.home()
def home(self):
self.button_1 = QtGui.QPushButton('Run', self)
self.button_1.resize(60,25)
self.button_1.move(230,230)
self.button_1.clicked.connect(self.Thread_test)
self.textbox_1 = QTextEdit(self)
self.textbox_1.move(15,290)
self.textbox_1.resize(510,170)
self.show()
def Thread_test(self):
t = threading.Thread(target=self.calculation)
t.start()
def calculation(self):
msg="program is working"
self.textbox_1.setText(msg)
time.sleep(5)
msg="program was slept for few sec."
self.textbox_1.setText(msg)
def run():
app=QtGui.QApplication(sys.argv)
GUI=Window()
sys.exit(app.exec_())
run()
【问题讨论】:
标签: python multithreading pyqt4