PyQt5 : Afficher les secondes dans un QTableWidget et trier les dates
Salut à tous !
J'utilise un QTableWidget pour afficher des données.
La colonne qui me pose probleme contient un QDateTime
Le problème est que le QTableWidget n'affiche pas les secondes, pourtant que je fait tostring() sur mon item, celui-ci contient bien les secondes. J'ai changer le type pour QTime, idem.
Le composant bloque donc les secondes d'une quelconque manière.
Ensuite lorsque j’essaie de trier mes données, les résultats ne sont pas cohérents. Mais c'est peut-être un autre problème
Code:
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
|
self.widgetEvents = QtGui.QTableWidget(numberOfEvents, 4);
self.widgetEvents.keyPressEvent = self.keyPressOnWidgetEvent;
self.setAttribute(QtCore.Qt.WA_AcceptTouchEvents);
self.setAttribute(QtCore.Qt.WA_NoMousePropagation);
self.widgetEvents.contextMenuEvent = self.contextMenuEvent;
self.widgetEvents.hide();
self.rightPanelUi.verticalLayout.addWidget(self.widgetEvents)
customHeader = HeaderTableView(QtCore.Qt.Horizontal, self.widgetEvents)
customHeader.setStretchLastSection(True)
customHeader.setHighlightSections(True)
customHeader.setSectionsClickable(True)
#customHeader.setSortIndicatorShown(True)
customHeader.setContextMenuTreeWidgetCallBack(self.getDataToShowAvaillableFilters)
customHeader.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
customHeader.customContextMenuRequested.connect(customHeader.showContextMenu)
self.widgetEvents.setHorizontalHeader(customHeader)
self.widgetEvents.setHorizontalHeaderLabels((_('Date'), _('Category'), _('Type'), _('Description')))
#self.widgetEvents.horizontalHeader().sectionClicked.connect(self.sortData)
self.widgetEvents.setSortingEnabled(True)
self.widgetEvents.verticalHeader().setVisible(False)
self.widgetEvents.setAlternatingRowColors(True)
self.widgetEvents.setStyleSheet("alternate-background-color: rgb(240,240,240); background-color: white;")
self.widgetEvents.setShowGrid(False)
self.widgetEvents.hide();
k = 0; # date & hour
for e in eventsLogFramesDecoded:
itemDateTime = QTableWidgetItem()
#strdatetime = str(e[6]) + '/' + str(e[5]) + '/' + str(2000 + int(e[4])) + ' ' + str(e[7]) + ':' + str(e[8]) + ':' + str(e[9]);
date = QDate(2000 + int(e[4]) ,int(e[5]), int(e[6]) )
time = QTime(int(e[7]), int(e[8]), int(e[9]))
#dateTime = QDateTime(date, time)
dateTime = QDateTime(date, time, 1)
#itemDateTime.setData(0,strdatetime);
#itemDateTime.setData(0, QDateTime(date, time, 1));
itemDateTime.setData(0, dateTime);
self.widgetEvents.setItem(k, 0, itemDateTime);
k = k + 1; |
Merci de votre aide !