Класс PyQt QTimeEdit в Python — свойства и пример

Класс PyQt QTimeEdit позволяет создать виджет для ввода и редактирования времени в Python:

Что такое PyQt QTimeEdit

Виджет QTimeEdit позволяет редактировать время с помощью клавиатуры или клавиш со стрелками вверх/вниз для увеличения/уменьшения значения времени. Также можно использовать клавиши со стрелками влево/вправо для перемещения между разделами дня, месяца и года в пределах записи.

QTimeEdit имеет следующие полезные свойства:

Свойство Описание
time() Возвращает время, отображаемое виджетом. Возвращаемое значение имеет тип QTime. Чтобы преобразовать его в объект Python datetime.time, можно использовать метод toPyTime() класса QTime.
minimumTime Самое раннее время, которое может установить пользователь.
maximumTime Самое позднее время, которое может установить пользователь.
displayFormat Строка, которая форматирует время, отображаемое в виджете.

QTimeEdit выдает сигнал editingFinished по завершении редактирования.

Пример виджета PyQt QTimeEdit

Следующая программа использует класс QTimeEdit для создания виджета для редактирования времени:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QTimeEdit, QLabel, QFormLayout


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('PyQt QTimeEdit')
        self.setMinimumWidth(200)

        # create a grid layout
        layout = QFormLayout()
        self.setLayout(layout)

        self.time_edit = QTimeEdit(self)
        self.time_edit.editingFinished.connect(self.update)

        self.result_label = QLabel('', self)

        layout.addRow('Time:', self.time_edit)
        layout.addRow(self.result_label)

        # show the window
        self.show()

    def update(self):
        value = self.time_edit.time()
        self.result_label.setText(str(value.toPyTime()))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    sys.exit(app.exec())

Как это работает.

  • Сначала создайте виджет QTimeEdit:
self.time_edit = QTimeEdit(self)
  • Во-вторых, подключите сигнал editingFinished() к методу update():
self.time_edit.editingFinished.connect(self.update)
  • В-третьих, создайте виджет QLabel для отображения значения виджета time_edit после завершения редактирования:
self.result_label = QLabel('', self)
  • Наконец, определите метод update(), который обновляет виджет метки текущим значением записи времени:
def update(self):
    value = self.time_edit.time()
    self.result_label.setText(str(value.toPyTime()))

Выход:

Пример виджета с редактированием времени

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *