Класс 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()))
Выход: