Qt: Bouton déroulant?
Comment puis-je créer une "liste déroulante" dans Qt?
Pour un non-Qt exemple, voir:
La combinaison de touche/bouton déroulant dans le bureau
Le point clé est que le widget a besoin d'une icône de l'action principale, et visuellement distincte "déroulant flèche" pour montrer secondary icons /actions.
En cliquant sur le "déroulant flèche" pour les options secondaires, l'utilisateur doit être présenté avec une grille de d'autres icônes pour choisir de. (Toutes les icônes, pas de texte.)
N'Qt ont un widget qui peut faire cela?
Si non, comment cela peut-il être créé dans Qt? (Je suis une nouvelle Qt, Qt Designer basé solution serait l'idéal.)
Merci
source d'informationauteur nonot1 | 2011-04-17
Vous devez vous connecter pour publier un commentaire.
Votre meilleur pari sera de faire votre propre sous-classe de QAbstractButton à utiliser. Vous voulez attirer l'ordinaire icône dans la partie désignée, et votre propre icône dans l'autre domaine. Vous aussi, vous avez besoin d'attraper la souris de presse de l'événement pour afficher le menu contextuel si c'est dans la zone désignée (au lieu de laisser le bouton habituel code de gestion de la prendre, ce qui aboutirait à un bouton cliqué signal lorsque la souris a été relâché).
En fait, un QToolButton fait cela très bien.
http://qt-project.org/forums/viewthread/5377
Il semble que l'OP a demandé ce dans un Qt forum et a obtenu une meilleure réponse. Ajouter ici par souci d'exhaustivité.
Vous devez utiliser un QToolButton. Ensuite, vous souhaiterez peut-être définir une icône à la place du texte du bouton set popupmenu propriété menubuttonpopup. C'est mon code:
J'ai créé un Un firefoxlooking menu déroulant à partir d'un bouton de mon précédent projet. Fondamentalement, je sous-classe QPushButton et fait un peu de peinture custom. Puis-je ajouter un menu pour que le bouton à l'aide de la fonction (QPushButton.setMenu(Qmenu). L'image attachée montrer à quoi il ressemble.
Vous pouvez simplement utiliser
setMenu()
régulièrement, sur le bouton-poussoir.Je ne pense pas que le menu d'extension est facultative si...
Je pense que vous voulez à la sous-classe
QComboBox
et réimplémenter le besoin de fonctionnalités /rechercher (avec paintEvent ou quelque chose) comme le widget qui semble plus proche de ce que vous êtes lookin pour (je suppose).Bonne Chance!
J'ai eu le même problème. Je n'ai pas trouvé d'habillage, widget. J'ai résolu le problème à l'aide de deux boutons, tandis que le second a des marges à 0 et une petite auto-tiré icône en forme de flèche. Vous pouvez le voir ici:
sur le côté gauche, une fois à la verticale du centre, une fois en bas.
Cette solution est erronée. Dans OS X, le deuxième bouton n'est pas dessiné comme un bouton (en raison de marges personnalisées) et colle comme laid rectangulaire bouton gris...
Je ne sais pas vraiment si ce n'est ce que vous voulez... mais l'essayer? http://doc.qt.io/archives/4.6/qtoolbutton.html#arrowType-prop
Un simple basé sur python, la solution est l'utilisation de 'activé' fonction:
Dans qt designer, sélectionnez une Zone de liste déroulante. Puis le renommer comme QComboBoxName ou ce que vous pouvez, comme pour l'appeler. Puis, dans la init fonction, collez ce code: