Выбрать главу

В окне сообщения по умолчанию используется кнопка «ОК».

Однако на самом деле существует более десятка различных кнопок, которые QMessageBox предлагает для использования.

Используя функцию setStandardButtons, мы можем установить другой тип кнопки.

Когда окно открывается, вокруг кнопки «ОК» есть синий контур.

Это обозначение кнопки по умолчанию.

Используя функцию setDefaultButton, мы можем изменить кнопку по умолчанию.

По умолчанию у нас есть только одна область в QMessageBox, где мы показываем текст.

Однако есть еще две дополнительные области, которые мы можем разблокировать, чтобы добавить больше текста.

Первая область — это дополнительный текстовый раздел в самом окне сообщения, который мы можем определить с помощью функции setInformativeText.

Вторая область текста отображается в расширении окна.

При настройке этого раздела автоматически создается кнопка, которая используется для отображения этой области.

И для создания этой области потребуется функция setDetailedText.

Теперь, если у нас есть 3 разные кнопки в окне сообщений, как мы узнаем, какая из них была нажата?

Используя метод buttonClicked.connect, мы можем вызвать запуск функции всякий раз, когда нажимается кнопка в окне сообщения.

Здесь когда нажимается кнопка окна сообщений, она автоматически запускает функцию popup, объявленную в buttonClicked.connect.

И вызов функции text кнопки вернет ее текстовое значение.

Виджет ProgressBar, индикатор выполнения — это отличный способ визуализировать процесс выполнения длительных операций, таких как передача файлов, загрузка, выгрузка, копирование и т. д.

Здесь с помощью метода setGeometry, мы определяем расположение и размеры индикатора выполнения.

Первые два параметра представляют положение X и Y индикатора выполнения в окне.

Третий и четвертый параметры — это ширина и высота индикатора выполнения.

Метод setValue устанавливает значения индикатора.

Однако имейте в виду, что диапазон для индикатора выполнения составляет от 0 до 100.

Если вы хотите изменить этот диапазон, используйте метод setRange.

Метод reset сбрасывает значение на индикаторе выполнения.

Метод value возвращает текущее целочисленное значение индикатора.

Виджет PyQt QSlider предоставляет графический интерфейс для выбора значения из диапазона различных значений.

У виджета Slider есть ползунок, который можно перемещать.

При перемещении ползунка выбранное значение соответственно изменяется.

По умолчанию ориентация слайдера вертикальная.

Для горизонтального ползунка вам нужно использовать значение Qt.Horizontal.

Затем нам нужно установить минимальный и максимальный диапазон с помощью методов setMinimum и setMaximum.

Используя метод setGeometry, мы определяем расположение и размеры слайдера.

Первые два параметра определяют положение ползунка по осям X и Y в окне.

Третий и четвертый параметры — это ширина и высота слайдера.

Затем нам нужно установить Ticks, маркеры по ползунку.

Вы можете выбрать место размещения тиков и установить интервал для расстояния между тиками.

Используя метод valueChanged, мы можем связать значение ползунка с функцией show.

Каждый раз, когда значение ползунка изменяется, вызывается функция show и показывается значение слайдера.

Виджет PyQt5 QDateEdit — это интерактивный и визуальный способ ввести дату в приложении.

Здесь вы можете редактировать дату вручную или с помощью встроенных клавиш со стрелками.

И здесь вам не нужно назначать минимальное или максимальное значение, PyQt сам назначит значения по умолчанию.

Но вы можете сделать это с помощью методов setMinimumDate и setMaximumDate.

Чтобы получить введенную дату, вы можете использовать метод date и метод toPyDate, чтобы распечатать дату в более читаемом формате.

Advanced PyQt

Одна из продвинутых возможностей Qt — это поддержка пользовательских стилей.

Самый простой способ изменить внешний вид приложения — это установить глобальный стиль с помощью метода setStyle класса QApplication.

Доступные стили зависят от вашей платформы, но обычно это стили «Fusion», «Windows», «WindowsVista» и «Macintosh».

Если вам нравится глобальный стиль, но вы хотите изменить его цвета, вы можете использовать объект QPalette и метод setPalette.

Все виджеты в Qt содержат палитру и используют ее для рисования.

полную версию книги