2009-09-13 8 views
18

Lorsque je crée un QPushButton avec une icône, il affiche par défaut le texte à droite de l'icône. Est-il possible d'afficher le texte sous l'icône?Qt QPushbutton Icône ci-dessus Texte

+1

@Lundin Aucun problème. C'était essayer d'améliorer le poste. Je pense que l'accent des noms de classe est une bonne idée. J'ai également choisi les mots les plus importants dans le courrier pour les rendre faciles à attraper. – fat

+0

@fat Le formatage des noms de classe ou d'autres codes évidents est correct, mais il n'est pas nécessaire d'ajouter de l'emphase aux mots aléatoires. – Lundin

Répondre

25

Si vous êtes en mesure de, la meilleure chose à faire est d'utiliser un QToolButton à la place:

QToolButton* button = new QToolButton(this); 
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); 
button->setIcon(myIcon); 
button->setText("Sample text"); 

Si ce n'est pas une option que vous pourriez envisager de créer votre propre widget bouton, peut-être dérivé de QPushButton ou QAbstractButton. Dans ce cas, vous aurez probablement (je ne l'ai pas essayé moi-même) veulent concentrer la plupart de vos efforts sur la réimplémentation paintEvent().

[Edit: lire les commentaires des solutions de rechange qui sont sans doute plus simple que cela]

+0

Vous pouvez réellement ajouter une interface utilisateur à un QPushButton si vous le souhaitez. Le dimensionnement automatique peut être délicat, mais vous pouvez ainsi contrôler complètement l'emplacement d'une icône et d'une étiquette de texte. –

+2

sous-classement juste pour le formatage ne vaut généralement pas la peine. Beaucoup peut être fait juste en appliquant des styles. Et tandis que la documentation sur les styles pourrait être meilleure, cela fonctionne raisonnablement bien et généralement comme prévu. –

+0

C'était exactement ce que j'essayais de faire. Merci! – DHamrick

4

Utilisez Qt Creator, et dans le volet inférieur du côté droit, vous verrez une option « textFormat », dans cette sélection ToolButtonTextUnderIcon.

+2

Dans mon qtcreator, il s'appelle "toolButtonStyle". –

+0

pour QToolButton, l'OP pose des questions sur QPushButton –

7
QPushButton { 
    padding: -25px 0 10px 0; 
    border: 1px solid black; 
    border-radius: 2px; 
    background-position: center bottom; 
    background-repeat: no-repeat; 
    background-origin: content; 
    background-image: url(":/new/resource/accept.png"); 
} 
QPushButton:disabled { 
    background-image: url(":/new/resource/accept_b.png"); 
}