Шаг 266.
Библиотека PyQt5.
Диалоговые окна. Окно с индикатором хода процесса

    На этом шаге мы рассмотрим 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.

    Со следующего шага мы начнем рассматривать создание многостраничного мастера.




Предыдущий шаг Содержание Следующий шаг