Шаг 118.
Библиотека PyQt5.
Основные компоненты. Поля для ввода целых и вещественных чисел
На этом шаге мы рассмотрим классы, используемые для ввода таких значений, а также перечислим методы, наследуемые из класса QAbstractSpinBox.
Для ввода целых чисел предназначен класс QSpinBox, для ввода вещественных чисел - класс QDoubleSpinBox. Эти поля могут
содержать две кнопки, которые позволяют щелчками мышью увеличивать и уменьшать значение внутри поля. Пример такого поля ввода можно
увидеть на рисунке 1.
Рис.1. Компонент QSpinBox
Текст приложения с использованием этого компонента:
# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets, QtCore
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("QSpinBox")
spinbox = QtWidgets.QSpinBox()
spinbox.setRange(1,2020)
spinbox.setValue(2019)
vbox = QtWidgets.QVBoxLayout()
vbox.addWidget(spinbox)
window.setLayout(vbox)
window.show()
sys.exit(app.exec_())
Архив с файлом можно взять
здесь.
Иерархия наследования;
(QObject, QPaintDevice) - QWidget - QAbstractSpinBox - QSpinBox
(QObject, QPaintDevice) - QWidget - QAbstractSpinBox - QDoubleSpinBox
Форматы конструкторов классов QSpinBox и QDoubleSpinBox:
<Объект> = QSpinBox ([parent=<Родитель>])
<Объект> = QDoubleSpinBox([parent=<Родитель>])
Классы QSpinBox и QDoubleSpinBox наследуют следующие методы из класса QAbstractSpinBox (здесь приведены только
основные - полный их список доступен на странице https://doc.qt.io/qt-5/qabstractspinbox.html):
- setButtonSymbols (<Режим>) - задает режим отображения кнопок, предназначенных для
изменения значения поля с помощью мыши. Можно указать следующие атрибуты класса QAbstractSpinBox:
- upDownArrows (или 0) - отображаются кнопки со стрелками;
- PlusMinus (или 1) - отображаются кнопки с символами + и -. Обратите внимание, что при использовании некоторых стилей это значение может быть проигнорировано;
- NoButtons (или 2) - кнопки не отображаются;
- setAlignment (<Режим>) - задает режим выравнивания значения внутри поля;
- setWrapping (<Флаг>) - если в качестве параметра указано значение True, то значение
внутри поля будет при нажатии кнопок изменяться по кругу: максимальное значение сменится минимальным и наоборот;
- setSpecialValueText (<Строка>) - позволяет задать строку, которая будет отображаться
внутри поля вместо минимального значения;
- setReadOnly (<Флаг>) - если в качестве параметра указано значение True, то поле будет
доступно только для чтения;
- setFrame (<Флаг>) - если в качестве параметра указано значение False, то поле будет
отображаться без рамки;
- stepDown () - уменьшает значение на одно приращение. Метод является слотом;
- stepUp () - увеличивает значение на одно приращение. Метод является слотом;
- stepBy (<Количество>) - увеличивает (при положительном значении) или уменьшает
(при отрицательном значении) значение поля на указанное количество приращений;
- text () - возвращает текст, содержащийся внутри поля;
- clear () - очищает поле. Метод является слотом;
- selectAll () - выделяет все содержимое поля. Метод является слотом.
Класс QAbstractSpinBox поддерживает сигнал editingFinished, который генерируется при потере полем фокуса ввода или при нажатии
клавиши Enter.
На следующем шаге мы закончим изучение этого вопроса.
Предыдущий шаг
Содержание
Следующий шаг