欢迎访问宙启技术站
智能推送

PySide2.QtWidgets中的进度条和计时器

发布时间:2023-12-25 17:48:49

进度条和计时器是PySide2.QtWidgets模块中常用的控件之一。进度条用于显示进程的完成度,计时器则用于定时执行某些任务。

下面是一个使用进度条和计时器的例子:

from PySide2.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QProgressBar, QPushButton
from PySide2.QtCore import QTimer, Qt

class MyWidget(QWidget):
    def __init__(self, parent=None):
        super(MyWidget, self).__init__(parent)
        self.progress_bar = QProgressBar(self)  # 创建进度条
        self.start_button = QPushButton('Start', self)  # 创建开始按钮
        self.stop_button = QPushButton('Stop', self)  # 创建停止按钮

        layout = QVBoxLayout()
        layout.addWidget(self.progress_bar)
        layout.addWidget(self.start_button)
        layout.addWidget(self.stop_button)
        self.setLayout(layout)

        self.timer = QTimer()  # 创建计时器
        self.timer.timeout.connect(self.update_progress)  # 连接计时器的timeout信号和自定义的槽函数

        self.start_button.clicked.connect(self.start_progress)  # 连接开始按钮的clicked信号和自定义的槽函数
        self.stop_button.clicked.connect(self.stop_progress)  # 连接停止按钮的clicked信号和自定义的槽函数

        self.progress = 0  # 初始化进度为0

    def start_progress(self):
        self.progress = 0
        self.timer.start(100)  # 每100毫秒更新一次进度条

    def stop_progress(self):
        self.timer.stop()  # 停止计时器

    def update_progress(self):
        self.progress += 1
        self.progress_bar.setValue(self.progress)  # 更新进度条的值
        if self.progress >= 100:  # 进度达到100时停止计时器
            self.timer.stop()

class MyWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)
        self.setWindowTitle('Progress Bar and Timer Example')
        self.setGeometry(300, 300, 200, 200)

        self.central_widget = MyWidget(self)
        self.setCentralWidget(self.central_widget)

if __name__ == '__main__':
    app = QApplication([])
    window = MyWindow()
    window.show()
    app.exec_()

以上例子创建了一个窗口,窗口中包含一个进度条、一个开始按钮和一个停止按钮。点击开始按钮,进度条会开始从0逐渐增加,点击停止按钮可以停止进度条的增加。计时器每100毫秒触发一次timeout信号,槽函数update_progress会将进度条的值加1,达到100时计时器会停止。

这只是一个简单的例子,可以根据需求来修改和扩展。进度条和计时器在图形界面应用中很常见,可以用于显示任务的进度和定时执行一些任务,例如下载文件、加载数据等。