Mam dużo istniejącego kodu, który po prostu używa normalnego klasy dateTime w Pythonie, jednak w ulepszaniu mojego programu używam klasy QtGui.QdateTimeEdit(), ale ta klasa zwraca obiekt QdateTime, który wydaje się Być niezgodnym z obiektem Normal {X3}}.

Czy więc jest saneczny sposób na przekonwertowanie QdateTime do normalnego Pythona {X1}}? Inne, a następnie łamanie go do jego części i odtwarzanie normalnego obiektu dateTime? Używam Pyqt4 z Pythonem 3.2. Dzięki.

19
Scott C 12 grudzień 2011, 04:45

3 odpowiedzi

Najlepsza odpowiedź

QDateTime Metoda toPyDateTime, która zwróci regularne obiekty datetime.

In : from PyQt4 import QtCore

In : QtCore.PYQT_VERSION_STR
Out: '4.8.6'

In : QtCore.QT_VERSION_STR
Out: '4.7.4'

In : now = QtCore.QDateTime.currentDateTime()

In : now
Out: PyQt4.QtCore.QDateTime(2011, 12, 11, 20, 12, 47, 55)

In : now.toPyDateTime()
Out: datetime.datetime(2011, 12, 11, 20, 12, 47, 55000)
23
Avaris 12 grudzień 2011, 01:17

pyqt - Użyj {x0}} na Qtcore.qdateTime Obiekt

>>> from PyQt4.QtCore import QDateTime
>>> qdate = QDateTime(2012, 12, 20, 11, 59, 59)
>>> qdate
PyQt4.QtCore.QDateTime(2012, 12, 20, 11, 59, 59)
>>> date = qdate.toPyDateTime()
>>> date
datetime.datetime(2012, 12, 20, 11, 59, 59)

Pyside - użyj .toPython() na obiekcie qtcore.qdateTime

>>> from PySide.QtCore import QDateTime
>>> qdate = QDateTime(2012, 12, 20, 11, 59, 59)
>>> qdate
PySide.QtCore.QDateTime(2012, 12, 20, 11, 59, 59, 0, 0)
>>> date = qdate.toPython()
>>> date
datetime.datetime(2012, 12, 20, 11, 59, 59)
16
Marcel Gwerder 10 październik 2013, 19:19
print(self.dte1.date().getDate())
print(self.dte1.date().toString("yyyy-MM-dd"))

Potrzebujesz tylko metody toString() dla ciągów Python

2
Jaap 15 wrzesień 2017, 09:12