首页 PyQt5视频教程 PyQt QProgressDialog进度条展示对话框API大全
pay pay

PyQt QProgressDialog进度条展示对话框API大全

日期: 七月 7, 2023, 1:11 p.m.
栏目: PyQt5视频教程
阅读: 78
作者: Python自学网-村长

摘要: QProgressDialog是PyQt5中用于展示进度条的控件,常用于展示长时间运行的任务的进度信息。其API包括以下内容:

QProgressDialog是PyQt5中用于展示进度条的控件,常用于展示长时间运行的任务的进度信息。其API包括以下内容:

  • init(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()):创建一个QProgressDialog控件
  • setLabelText(text: str):设置进度条对话框中的文本标签
  • setMaximum(maximum: int):设置进度条的最大值
  • setMinimum(minimum: int):设置进度条的最小值
  • setRange(minimum: int, maximum: int):同时设置进度条的最小值和最大值
  • setValue(progress: int):设置进度条的当前值
  • setWindowModality(modality: Union[Qt.WindowModality, Qt.WindowModalityFlag]):设置进度条对话框的模态方式
  • setWindowTitle(title: str):设置进度条对话框的标题
  • wasCanceled() -> bool:判断用户是否取消了进度条对话框

以下是一个演示程序,其中包含了上述API的使用:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QProgressDialog


class Example(QWidget):

    def __init__(self):
        super().__init__()

        # 设置窗口标题和大小
        self.setWindowTitle('QProgressDialog Example')
        self.resize(400, 300)

        # 创建按钮并设置点击事件
        btn = QPushButton('Show Progress', self)
        btn.move(150, 100)
        btn.clicked.connect(self.show_progress)

    def show_progress(self):
        # 创建QProgressDialog控件并设置属性
        progress = QProgressDialog('Progress', 'Cancel', 0, 100, self)
        progress.setWindowTitle('Progress Dialog')
        progress.setWindowModality(True)

        # 设置进度条更新的间隔时间(默认为0,即实时更新)
        progress.setWindowFlags(progress.windowFlags() | Qt.CustomizeWindowHint)
        progress.setWindowFlags(progress.windowFlags() & ~Qt.WindowCloseButtonHint)
        progress.setMinimumDuration(0)

        # 开始模拟长时间运行的任务并更新进度条
        for i in range(101):
            progress.setValue(i)
            if progress.wasCanceled():
                break

    def closeEvent(self, event):
        # 关闭窗口时关闭所有对话框
        for dialog in QApplication.topLevelWidgets():
            if isinstance(dialog, QProgressDialog):
                dialog.close()
        event.accept()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

在上述演示程序中,我们创建了一个QWidget,在QWidget中添加了一个QPushButton控件,点击按钮时会创建并展示一个QProgressDialog控件,并使用上述API中的多个方法,设置了进度条对话框的标题、文本标签、最小值、最大值、模态对话框等属性,并在进度条对话框中模拟了长时间运行的任务,并更新进度条。

最后,我们使用QApplication和sys模块来创建并运行应用程序。运行上述演示程序,可以看到一个窗口中展示了一个按钮,点击按钮后会弹出一个进度条对话框,进度条会从0%到100%进行更新,直到任务完成或者用户点击了取消按钮。在关闭程序时,我们通过重写closeEvent()方法,关闭所有打开的对话框,确保程序关闭时不会有未关闭的对话框。

原创视频,版权所有,未经允许,切勿转载,违者必究!
回顶部