def testQDateValid(self): '''QDataStream <<>> QDate - valid''' self.stream << QDate(2012, 12, 21) res = QDate() self.read_stream >> res self.assertEqual(res, QDate(2012, 12, 21)) self.assertTrue(res.isValid()) self.assertFalse(res.isNull())
def testQDateNull(self): '''QDataStream <<>> QDate - null''' self.stream << QDate() res = QDate() self.read_stream >> res self.assertEqual(res, QDate()) self.assertFalse(res.isValid()) self.assertTrue(res.isNull())
class MyFilterModel(QtCore.QSortFilterProxyModel): """This is for the transaction page to filter dates""" def __init__(self, parent=None): super().__init__(parent) self.minDate = QDate.fromString('2019-01-01', QtCore.Qt.ISODate) self.maxDate = QDate(datetime.now()) def setFilterDate(self, minDate, maxDate): self.minDate = QDate.fromString(minDate, QtCore.Qt.ISODate) self.maxDate = QDate.fromString(maxDate, QtCore.Qt.ISODate) self.invalidateFilter() def filterAcceptsRow(self, sourceRow, sourceParent): dateindex = self.sourceModel().index(sourceRow, 0, sourceParent) return (self.dateInRange(self.sourceModel().data( dateindex, QtCore.Qt.DisplayRole))) def dateInRange(self, date): if isinstance(date, QtCore.QDateTime): date = date.date() return ((not self.minDate.isValid() or date >= self.minDate) and (not self.maxDate.isValid() or date <= self.maxDate))