Voila une petite maniere de creer des widgets dans les lignes dune QListWidget et de pouvoir les appeler pour les utiliser.
from PySide.QtGui import * from PySide.QtCore import * class Win(QListWidget) : def __init__(self) : super(Win, self).__init__() s = QSize(25, 25) #On met des widget type QCheckBox dans nos ligne #de notre QListWidget #on rajoute 10 ligne for i in range(10) : #On instancie un QListWidgetItem qui contiendra #nos QCheckBox et QSpinBox item = QListWidgetItem() item.setSizeHint(s) #on cree nos widgets if i % 2 == 0 : cb = QCheckBox("Check Box " + str(i)) cb.setFixedHeight ( 25) else : cb = QSpinBox() cb.setSuffix(" : Spinn Box " + str(i)) cb.setFixedHeight ( 25) #On ajoute notre QListWidgetItem dans une ligne #grace a addItem() de QListWidget self.addItem(item) #Et on ajoute nos CheckBox et SpinBox a nos QListWidgetItem #Grace a la methode setItemWidget() de QListWidget #Le premier arg est le QListWidgetItem, le second arg est notre #Widget, pour nous QCheckBox et QSpinBox self.setItemWidget(item, cb) self.show() #On recupere nos widget spinbox et checkbox : #liste tous les items present dans le QListWidget #dans notre cas se sont des QListWidgetItem widgetItems = [] for i in range(self.count()) : item = self.item(i) widgetItems.append(item) #on liste tous nos widget present dans nos QListWidgetItem #en passant par la method itemWidget() de QListWidget() checkItems = [] for it in widgetItems : ch = self.itemWidget(it) checkItems.append(ch.text()) s = Win()
Aucun commentaire:
Enregistrer un commentaire