1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| #!/usr/bin/python
# -*- coding: utf-8 -*-
# Python 3, PyQt5
import sys
from random import randint
from PyQt5 import QtCore, QtWidgets
#############################################################################
class TableWidgetItem(QtWidgets.QTableWidgetItem):
def __init__(self, parent=None):
super().__init__(parent)
def __lt__(self, autrevaleur):
if self.column()==0:
v1 = self.data(QtCore.Qt.EditRole)
dt1 = v1[6:10]+v1[3:5]+v1[0:2]+v1[11:13]+v1[14:16]+v1[17:19]
v2 = autrevaleur.data(QtCore.Qt.EditRole)
dt2 = v2[6:10]+v2[3:5]+v2[0:2]+v2[11:13]+v2[14:16]+v2[17:19]
return dt1 < dt2
return super().__lt__(autrevaleur)
#############################################################################
class MyTableWidget(QtWidgets.QTableWidget):
def __init__(self, parent=None):
super().__init__(parent)
nblig, nbcol = 5, 5
self.setRowCount(nblig)
self.setColumnCount(nbcol)
self.setSortingEnabled(True)
for i in range(0, nblig):
date = QtCore.QDate(2016 ,randint(1, 12), randint(1, 28))
time = QtCore.QTime(randint(0,23), randint(0, 59), randint(0, 59))
dateTime = QtCore.QDateTime(date, time, QtCore.Qt.UTC)
# conversion en chaine de caractères
dateTimeStr = dateTime.toString("dd/MM/yyyy hh:mm:ss")
obj = TableWidgetItem() # au lieu de: QtWidgets.QTableWidgetItem()
obj.setData(QtCore.Qt.DisplayRole, dateTimeStr)
self.setItem(i, 0, obj)
#############################################################################
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
fenetre = MyTableWidget()
fenetre.show()
sys.exit(app.exec_()) |
Partager