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