Création de" jolis " Widgets personnalisés Qt
Quel est le processus de fabrication de widgets personnalisés (en utilisant Qt) qui ne regardent pas...bien...laid?
je sais que c'est assez trivial pour faire un "widget personnalisé" qui a-dire, une zone de liste et un bouton-poussoir giflé ensemble en un seul, mais comment puis-je faire quelque chose qui ressemble à ceci:
j'ai fait quelques maquettes grossières qui utilisent essentiellement un arrière-plan PNG (que J'ai fait dans Photoshop) avec des éléments de base comme QLabels placé sur eux, mais je ne pense pas que ce soit comme ça que je devrais le faire. Je sais que Qt supporte CSS -- est-ce que c'est ce que les gens utilisent pour créer des widgets qui semblent vraiment bien? Ai-je besoin de travailler dans les méthodes paintEvent? OpenGL?
essayer de chercher quelque chose de "custom widget qt" lié c'est juste me donner des tonnes d'informations sur la façon de les importer dans le concepteur, etc -- donc toutes les pistes seraient appréciées.
Merci!
2 réponses
Il y a essentiellement trois choses différentes à essayer, dans l'ordre indiqué:
- CSS / feuilles de style. Les feuilles de style, lorsqu'elles sont suffisamment puissantes pour répondre à vos besoins, sont excellentes et permettent des changements de style d'exécution. Voir le exemples de feuilles de style.
- peinture Custom. Vous pouvez faire pratiquement tout ce que vous voulez avec la peinture sur mesure. Le soutien de Qt pour PNGs et SVGs devrait aider beaucoup. Vous aurez envie de prendre un coup d'oeil à la exemples de peinture. Aussi, jetez un oeil à l' QStyle documentation pour comprendre quels types d'information de style vous devriez considérer.
- styles Personnalisés. Si vous avez besoin pour personnaliser l'ensemble de l'application, vous pourriez être mieux de créer votre propre style. Pas pour les faibles de cœur.
fondamentalement, allez avec la solution la plus facile possible qui fonctionnera pour vous. Aussi, jetez un oeil à Qt Creator, c'est joliment stylisé et tous les code source est disponible.
voici un tutoriel pour créer une fenêtre personnalisée en supprimant la barre supérieure du système et en dessinant le bacground:http://qt.developpez.com/tutoriels/braindeadbzh/customwindow/.
Puisqu'il sous-classe un QWidget, vous pouvez le faire pour toutes les sous-classes de QWidget comme QPushButton).
Si Vous voulez les utiliser dans QTDesigner, il suffit d'inclure votre classe et donc de promouvoir un "classique" widget personnalisé. Cela peut être utile: http://pepper.troll.no/s60prereleases/doc/designer-using-custom-widgets.html.