2012-02-24 3 views
0

Je suis novice en PySide et en Qt, et j'ai maintenant besoin de créer une application qui a une arborescence avec des éléments stylés. Chaque article nécessite deux lignes de texte (différents styles) et un bouton. De nombreux éléments sont supposés être dans la vue, j'ai donc choisi QTreeView sur QTreeWidget. Maintenant, j'ai réussi à ajouter des éléments de texte simples (sans style) à QTreeView et n'ai presque aucune idée sur la façon de placer plusieurs widgets sur un élément. Pourriez-vous s'il vous plaît me donner un exemple de la façon de créer un tel design?Personnaliser les articles QTreeView

J'ai trouvé quelques exemples sur Internet, qui sont similaires à ce que je veux, mais ils sont tous en C++, et il n'est pas évident de savoir comment convertir des délégués et d'autres choses en Python. Je suis maintenant vraiment confus à propos de tout cela ...

Répondre

1

Je vous recommande d'utiliser QTreeWidget simple et d'insérer des widgets complexes avec setItemWidget. Alors que les widhets de Qt sont étrangers, ils ne sont pas si lourd à dessiner, mais:

  • Vous ne devez pas créer délégués.
  • Vous ne devriez pas gérer les événements (Si vous allez placer le bouton en vue et d'en tirer à l'aide de délégués, il fallait gérer tous ses événements, tels que mouseOver, changement d'orientation, etc. Il est beaucoup du travail.
+0

Utiliser 'setItemWidget' il est possible de définir un widget de pour le point. et comment avoir plusieurs QLabels et un QPushButton à chaque élément? il devrait y avoir quelque chose comme QPanel, mais il ne fonctionne pas – aplavin

+0

@chersanya, d'abord, vous êtes en mesure de définir un widget distinct pour chaque colonne, puis votre widget peut avoir très compliqué d structure interne. – Lol4t0

+0

@ Lol4to et comment faire "structure interne très compliquée" de mon widget? – aplavin