文章来源地址https://www.toymoban.com/news/detail-829304.html
from PySide6.QtWidgets import QApplication, QWidget, QMessageBox, QProgressBar, QPushButton
from PySide6.QtCore import QThread, Signal, Qt
class DataUpdater(QThread):
"""
后台线程,模拟更新数据
"""
update_progress = Signal(int) # 定义信号,用于更新进度条
update_success = Signal() # 定义信号,用于更新成功后的操作
def run(self):
"""
线程执行函数,模拟更新数据
"""
for i in range(101):
self.update_progress.emit(i) # 发送进度条信号,更新进度条
self.msleep(50) # 模拟耗时操作
QApplication.processEvents() # 处理消息队列,响应关闭事件
self.update_success.emit() # 发送更新成功信号
class MainWidget(QWidget):
"""
主窗口,用于更新数据并显示进度条、等待框、更新成功消息框
"""
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Data Updater')
self.progress_bar = QProgressBar(self)
self.progress_bar.setGeometry(50, 50, 200, 25)
self.update_btn = QPushButton('Update Data', self)
self.update_btn.setGeometry(50, 100, 100, 25)
self.update_btn.clicked.connect(self.update_data)
self.show()
def update_data(self):
self.wait_box = QMessageBox(self)
self.wait_box.setWindowTitle('Updating Data')
self.wait_box.setText('Please wait...')
self.wait_box.setStandardButtons(QMessageBox.Close)
self.wait_box.show()
self.data_updater = DataUpdater(self)
self.data_updater.update_progress.connect(self.update_progress_bar)
self.data_updater.update_success.connect(self.show_update_success)
self.data_updater.start()
def update_progress_bar(self, value):
self.progress_bar.setValue(value)
def show_update_success(self):
self.wait_box.close()
success_box = QMessageBox(self)
success_box.setWindowTitle('Update Success')
success_box.setText('Data has been updated successfully.')
success_box.exec()
if __name__ == '__main__':
app = QApplication([])
widget = MainWidget()
widget.show()
app.exec()
文章来源:https://www.toymoban.com/news/detail-829304.html
到了这里,关于【PySide6】PySide6后台更新数据进度提示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!