ReportGeneratorLocal/test.py

64 lines
1.9 KiB
Python
Raw Normal View History

import sys
import time
from PySide6.QtWidgets import QApplication, QMainWindow, QProgressBar, QVBoxLayout, QWidget, QPushButton
from PySide6.QtCore import QThread, Signal
class WorkerThread(QThread):
progress_updated = Signal(int) # 进度更新信号
finished = Signal() # 完成信号
def run(self):
# 模拟耗时操作
for i in range(1, 101):
time.sleep(0.05) # 模拟耗时操作
self.progress_updated.emit(i) # 发射进度信号
self.finished.emit()
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("独立进度条示例")
self.setGeometry(100, 100, 400, 200)
# 创建进度条
self.progress_bar = QProgressBar()
self.progress_bar.setRange(0, 100)
# 创建开始按钮
self.start_button = QPushButton("开始加载")
self.start_button.clicked.connect(self.start_loading)
# 设置布局
layout = QVBoxLayout()
layout.addWidget(self.progress_bar)
layout.addWidget(self.start_button)
container = QWidget()
container.setLayout(layout)
self.setCentralWidget(container)
# 初始化工作线程
self.worker_thread = WorkerThread()
self.worker_thread.progress_updated.connect(self.update_progress)
self.worker_thread.finished.connect(self.loading_finished)
def start_loading(self):
self.start_button.setEnabled(False)
self.worker_thread.start()
def update_progress(self, value):
self.progress_bar.setValue(value)
def loading_finished(self):
self.start_button.setEnabled(True)
# 这里可以添加加载完成后的操作
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())