2009-09-13 16 views
18

Quando creo un QPushButton con un'icona, per impostazione predefinita viene visualizzato il testo alla destra dell'icona. C'è un modo per visualizzare il testo sotto l'icona?Qt QPulsante del pulsante sopra il testo

+1

@Lundin Nessun problema. E 'stato il tentativo di migliorare il post. Penso che l'enfasi dei nomi di classe sia una buona idea. Inoltre ho selezionato le parole più importanti in post per renderle facili da catturare. – fat

+0

@fat La formattazione dei nomi di classe o altro codice ovvio va bene, ma non è necessario aggiungere enfasi alle parole casuali. – Lundin

risposta

25

Se siete in grado di, la cosa più facile da fare è utilizzare un QToolButton invece:

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

Se questo non è un'opzione che si potrebbe prendere in considerazione creare il proprio widget di tasto, forse derivato dal QPushButton o QAbstractButton. In questo caso probabilmente (non l'ho provato io stesso) voglio concentrare la maggior parte dei tuoi sforzi sulla reimplementazione di paintEvent().

[Edit: leggere i commenti per le alternative che sono probabilmente modo più semplice di questo]

+0

È possibile aggiungere un'interfaccia utente a un QPushButton se lo si desidera. Il dimensionamento automatico può essere complicato, ma in questo modo è possibile controllare completamente dove andare un'icona e un'etichetta di testo. La sottoclasse –

+2

solo per la formattazione di solito non vale la pena. Molto può essere fatto semplicemente applicando gli stili. E mentre la documentazione sugli stili potrebbe essere migliore, funziona abbastanza bene e normalmente come previsto. –

+0

Questo era esattamente quello che stavo cercando di fare. Grazie! – DHamrick

4

Usa Qt Creator, e nel riquadro in basso a destra, si vedrà l'opzione 'textFormat', in quel selezionare ToolButtonTextUnderIcon.

+2

Nel mio qtcreator è chiamato "toolButtonStyle". –

+0

che è per QToolButton, l'OP chiede su 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"); 
} 
Problemi correlati