Как добавить событие при изменении QTimeEdit и, как изменить значение QTimeEdit PySide2
У меня есть QTimeEdit, мне надо при изменении значения вызывать функцию test_func().
И как я могу изменять значение QTimeEdit по нажатию кнопки?
Ответы (2 шт):
Автор решения: Alexander Chernin
→ Ссылка
Вот сигнал (timeChanged) получения измененного значения времени
class Widget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.te = QTimeEdit(self)
self.te.timeChanged.connect(self.timeChanged)
def onTimeChanged(self, time):
print(time.toString("HH.mm.ss"))
Вот слот (setTime) для установки нового значения времени
self.timeEdit.setTime(<QTime>)
Автор решения: S. Nick
→ Ссылка
Пожалуйста, всегда предоставляйте код, который вы уже написали.
void QDateTimeEdit::timeChanged(QTime time)
Этот сигнал излучается всякий раз, когда изменяется время.
import sys
from PyQt5.Qt import * # установите свои имплрты для PySide2
class Demo(QWidget):
def __init__(self):
super(Demo, self).__init__()
self.timeEdit = QTimeEdit(QTime.currentTime())
self.timeEdit.setDisplayFormat('HH:mm:ss')
self.timeEdit.timeChanged.connect(self.time_changed)
self.button = QPushButton('Увеличить время на 5 минут')
self.button.clicked.connect(self.button_clicked)
self.layout = QFormLayout(self)
self.layout.addRow(QLabel('timeChanged'), self.timeEdit)
self.layout.addRow('', self.button)
def time_changed(self, time):
print(f'Time Changed: {time} --> {time.toString("hh:mm:ss")}')
def button_clicked(self):
_time = self.timeEdit.time() # получить время
print(f'\nTime : {_time}')
_time = _time.addSecs(60 * 5) # изменить время
print(f'Time + 5 мин.: {_time}')
self.timeEdit.setTime(_time) # установить новое время
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setFont(QFont("Times", 12, QFont.Bold))
demo = Demo()
demo.show()
sys.exit(app.exec_())
