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