文章來源地址http://www.zghlxwxcb.cn/news/detail-829304.html
from PySide6.QtWidgets import QApplication, QWidget, QMessageBox, QProgressBar, QPushButton
from PySide6.QtCore import QThread, Signal, Qt
class DataUpdater(QThread):
"""
后臺線程,模擬更新數(shù)據(jù)
"""
update_progress = Signal(int) # 定義信號,用于更新進度條
update_success = Signal() # 定義信號,用于更新成功后的操作
def run(self):
"""
線程執(zhí)行函數(shù),模擬更新數(shù)據(jù)
"""
for i in range(101):
self.update_progress.emit(i) # 發(fā)送進度條信號,更新進度條
self.msleep(50) # 模擬耗時操作
QApplication.processEvents() # 處理消息隊列,響應(yīng)關(guān)閉事件
self.update_success.emit() # 發(fā)送更新成功信號
class MainWidget(QWidget):
"""
主窗口,用于更新數(shù)據(jù)并顯示進度條、等待框、更新成功消息框
"""
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()
文章來源:http://www.zghlxwxcb.cn/news/detail-829304.html
到了這里,關(guān)于【PySide6】PySide6后臺更新數(shù)據(jù)進度提示的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!