На этом шаге мы рассмотрим cоздание такого окна.
Класс QProgressDialog реализует диалоговое окно с индикатором хода процесса и кнопкой Cancel (рисунок 1). Иерархия наследования для класса QProgressDialog выглядит так:
(QObject, QPaintDevice) - QWidget - QDialog - QProgressDialog
Форматы конструктора класса QProgressDialog:
<Объект> = QProgressDialog([parent=None][, flags=0]) <Объект> = QProgressDialog(<Текст над индикатором>, <Текст на кнопке Cancel>, <Минимум>, <Максимум>[,parent=None][, flags=0])
Значения минимума и максимума должны быть заданы в виде целых чисел. Если в параметре parent указана ссылка на родительское окно, то диалоговое окно будет центрироваться относительно родительского окна, а не относительно экрана. Параметр flags задает тип окна (см. 25 шаг).
Приведем небольшой пример, визуально демонстрирующий это окно:
# -*- coding: utf-8 -*- from PyQt5 import QtWidgets import sys def on_clicked(): pdialog = QtWidgets.QProgressDialog("Операция выполняется", "Отмена", 1, 100, parent=window) pdialog.setValue(55) pdialog.show() app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QWidget() # Родительский компонент - окно window.setWindowTitle("Вывод индикатора хода процесса") # Назначаем обработчиками функции button1 = QtWidgets.QPushButton("Индикатор процесса") grid = QtWidgets.QGridLayout() # Создаем сетку grid.addWidget(button1, 0, 0) # Добавляем компоненты button1.clicked.connect(on_clicked) window.setLayout(grid) window.show() sys.exit(app.exec_())
Рис.1. Окно с индикатором хода процесса
Класс QProgressDialog наследует все методы базовых классов и дополнительно определяет следующие методы (здесь приведены только основные - полный их список доступен на странице https://doc.qt.io/qt-5/qprogressdialog.html):
Класс QProgressDialog поддерживает сигнал canceled(), который генерируется при нажатии кнопки Cancel.
Со следующего шага мы начнем рассматривать создание многостраничного мастера.