我想更新弹出的进度条。
我指的是当在pyqt中使用movetothread、后台线程和qthread时,如何正确退出pyqt5中的qthread
在主窗口中,当我单击一个按钮时,程序将执行一些工作,子窗口(progressbar)将显示。我认为,线程启动时,线程向子窗口(progressbar)发送一个信号。但是在子窗口显示之后,程序就死了。我用朱庇特笔记本。
这是我的密码。
class MainWindow(QMainWindow, FORM):
def __init__(self):
super().__init__()
self.setupUi(self)
self.button_num.clicked.connect(self.save_num)
def save_num(self):
s = SubWindow(5)
save_thread = QThread()
save_obj = save_object()
save_obj.moveToThread(save_thread)
save_obj.progress_signal.connect(s.progress_value)
save_obj.finished.connect(save_thread.quit)
save_thread.started.connect(save_obj.save_num)
save_thread.start()
class SubWindow(QWidget):
def __init__(self, val):
super().__init__()
self.progress = QProgressBar()
self.progress.setMinimum(0)
self.progress.setMaximum(val)
self.layout = QVBoxLayout()
self.layout.addWidget(self.progress)
self.setLayout(self.layout)
self.show()
@pyqtSlot(int)
def progress_value(self, val):
self.progress.setValue(val)
class save_object(QObject):
progress_signal = pyqtSignal(int)
finished = pyqtSignal()
def save_num(self):
count = 0
while count < 5:
time.sleep(1)
print(count)
count += 1
self.progress_signal.emit(count)
self.finished.emit()
这条路对吗?
有什么问题?
暂无答案!
目前还没有任何答案,快来回答吧!