Как изменить время в QDateTimeEdit
Имеется переменная date, которая имеет тип QDateTimeEdit.
date.dateTime() имеет тип QDateTime.
Как добавить или вычесть несколько дней или часов?
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
import sys
from PyQt5.Qt import *
class MyWin(QWidget):
def __init__(self):
super().__init__()
lblCurrentDateTime = QLabel()
self.lblDateTimeEdit = QLabel()
btn_days = QPushButton("DateTime + 7 days")
btn_days.clicked.connect(self.editDateDay_days)
btn_hours = QPushButton("DateTime + 2 hours")
btn_hours.clicked.connect(self.editDateDay_hours)
lblCurrentDateTime.setText(
QDateTime.currentDateTime().toString('yyyy MM dd hh:mm:ss'))
self.dateTimeBegin = QDateTimeEdit()
self.dt = self.dateTimeBegin.dateTime().currentDateTime()
lay = QVBoxLayout(self)
lay.addWidget(lblCurrentDateTime)
lay.addWidget(self.lblDateTimeEdit)
lay.addWidget(btn_days)
lay.addWidget(btn_hours)
def editDateDay_days(self):
self.dateTimeBegin.setDateTime(self.dt.addDays(7))
self.dt = self.dt.addDays(7)
currentTime = self.dateTimeBegin.dateTime().toString(
'yyyy MM dd hh:mm:ss')
self.lblDateTimeEdit.setText(
self.dateTimeBegin.dateTime().toString('yyyy MM dd hh:mm:ss'))
def editDateDay_hours(self):
self.dateTimeBegin.setDateTime(self.dt.addSecs(1*60*60*2))
self.dt = self.dt.addSecs(1*60*60*2)
currentTime = self.dateTimeBegin.dateTime().toString(
'yyyy MM dd hh:mm:ss')
self.lblDateTimeEdit.setText(
self.dateTimeBegin.dateTime().toString('yyyy MM dd hh:mm:ss'))
if __name__ =="__main__":
app = QApplication(sys.argv)
w = MyWin()
w.show()
sys.exit(app.exec_())
