J'ai besoin que mes objets combobox soient vérifiables par l'utilisateur afin qu'ils puissent sélectionner plusieurs éléments. J'ai vu une solution sur stackoverflow. Je l'ai appliqué à mon code. Il a fait quelque chose, mais la case à cocher n'est pas encore visible et je ne suis pas encore en mesure de sélectionner un élément.CheckBox non visible à l'intérieur de ComboBox
Mon code est le suivant
from PySide.QtGui import *
from PySide.QtCore import *
udims = [here goes some items]
cmb = QComboBox()
model = QStandardItemModel(len(udims), 1)
for i, udim in enumerate(udims):
item = QStandardItem(udim)
item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
item.setData(Qt.Checked | Qt.CheckStateRole)
model.setItem(i, 0, item)
cmb.setModel(model)
Cet exemple de code n'est pas un [MCVE] (http://stackoverflow.com/help/mcve). C'est ennuyeux car il est assez facile (en particulier en Python) d'en faire un: S'il vous plaît, corrigez l'affectation de 'udims' (par exemple' udims = ["ici", "va", "certains", "items"] '); fix 'model = QStandardItemModel (len (items), 1)' (par exemple 'model = QStandardItemModel (len (udims), 1)'); correction 'item = QStandarItem (udim)' (faute de frappe); ajoutez une instance de 'QApplication()'. J'ai fait tout cela (localement) dans PyQt5 et l'ai fait fonctionner. Btw. Je n'ai pas vu les cases à cocher dans mon "port" PyQt5 aussi. – Scheff
Le comportement que vous décrivez (pas de cases à cocher, pas de sélection en vol stationnaire) J'ai vu de mon côté aussi (cygwin, python3, PyQt5). Jetez un oeil à [SO: ComboBox de CheckBoxes?] (Https://stackoverflow.com/a/20118475/7478597). Peut-être, vous devez utiliser l'astuce déléguée d'élément pour les rendre visibles. Btw. Je crois qu'il y a une autre faute de frappe dans 'item.setData (Qt.Checked | Qt.CheckStateRole)': ne devrait-il pas être 'item.setData (Qt.Checked, Qt.CheckStateRole)' (ie ** ',' ** au lieu de ** '|' **)? – Scheff
ItemDelegate trick résolu mon problème. – Vicspidy