Bonjour,
Je suis actuellement en train de développer une application avec PyQt5 et python 3.4. Cependant je me heurte a un problème.
J'ai créer un QTreeWidget qui contient 2 niveaux d'item, les topItems et les subItems. J'aimerais récuperer les données de mon subItem lorsque on clique dessus. ça doit être tout bête mais je loupe quelques chose, je récupère bien la colonne cliqué ainsi que le QTreeWidgetItem selectionné dans la méthode appelée par mon signal, mais je ne comprend pas comment l'utiliser. J'ai bien sur lu la doc, mais je ne trouve pas mon bonheur
Remplissage du QTreeWidget :
Connexion du signal :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 def addNodeToTreeview(self, data): self.panelInfoPatientUi.treeWidgetDevices.clear() for item in data: mainWidgetItem = QtGui.QTreeWidgetItem(self.panelInfoPatientUi.treeWidgetDevices) widgetContainer = QtWidgets.QWidget() widgetContainer.setObjectName("widgetContainer") deviceWidget = Ui_DeviceListviewWidget() deviceWidget.setupUi(widgetContainer) deviceWidget.labelSerialNumber.setText(item.serialNumber) deviceWidget.labelModel.setText(item.model) deviceWidget.labelInstallationDate.setText(item.installDate) mainWidgetItem.setSizeHint(0, widgetContainer.sizeHint()) self.panelInfoPatientUi.treeWidgetDevices.addTopLevelItem(mainWidgetItem) self.panelInfoPatientUi.treeWidgetDevices.setItemWidget(mainWidgetItem, 0, widgetContainer) for files in item.listFile: #Files fileWidgetItem = QtGui.QTreeWidgetItem(mainWidgetItem) widgetContainerFiles = QtWidgets.QWidget() widgetContainerFiles.setObjectName("widgetContainerFiles") fileWidget = Ui_FileListWidgetItem() fileWidget.setupUi(widgetContainerFiles) fileWidget.labelFileName.setText(files.fileName) fileWidget.labelDateFile.setText(files.dateFile) fileWidgetItem.setSizeHint(0, widgetContainerFiles.sizeHint()) mainWidgetItem.addChild(fileWidgetItem) self.panelInfoPatientUi.treeWidgetDevices.setItemWidget(fileWidgetItem, 0, widgetContainerFiles)
Methode connectée au signal:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 def connectSignalTreeWidget(self): self.view.panelInfoPatientUi.treeWidgetDevices.itemDoubleClicked.connect(self.testest)
Qu'est-ce que loupe ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 def testest(self, data, d2): selectedItems = self.view.panelInfoPatientUi.treeWidgetDevices.selectedItems() for selectedItem in selectedItems: print(str(selectedItem.text(0))) print(str(selectedItem.text(1))) print(str(selectedItem.text(2))) '''print("d2" + str(d2)) print(str(data)) print(data.text(d2)) print(data.data(1, 0)) print("column count " + str(data.columnCount())) print("AHYAAAAAAAAAA")'''
Merci d'avance
Partager