2009-09-13 14 views
18

Cuando creo un QPushButton con un icono, de forma predeterminada muestra el texto a la derecha del icono. ¿Hay alguna manera de que el texto se muestre debajo del ícono?Qt QPushbutton Icono sobre el texto

+1

@Lundin Ningún problema. Fue un intento de mejorar la publicación. Creo que el énfasis de los nombres de clase es una buena idea. También seleccioné las palabras más importantes en la publicación para que sean fáciles de atrapar. – fat

+0

@fat El formato de nombres de clase u otro código obvio está bien, pero no es necesario agregar énfasis a las palabras aleatorias. – Lundin

Respuesta

25

Si usted es capaz de, la cosa más fácil que hacer es usar un QToolButton lugar:

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

Si eso no es una opción que podría considerar la creación de su propio aparato de botón, posiblemente deriva de QPushButton o QAbstractButton. En este caso, probablemente (no lo he probado) quiero centrar la mayoría de tus esfuerzos en volver a implementar paintEvent().

[Editar: leer los comentarios de alternativas que son probablemente manera más simple que esto]

+0

En realidad, puede agregar una IU a un QPushButton si lo desea. El tamaño automático puede ser complicado, pero de esa manera puede controlar completamente dónde van el icono y la etiqueta de texto. –

+2

la subclasificación solo para formatear no suele valer la pena. Mucho se puede hacer simplemente aplicando estilos. Y aunque la documentación sobre los estilos podría ser mejor, funciona razonablemente bien y generalmente como se esperaba. –

+0

Esto era exactamente lo que estaba tratando de hacer. ¡Gracias! – DHamrick

4

uso de Qt Creator, y en el panel inferior lado derecho, verá una opción 'textFormat', en ese selecto ToolButtonTextUnderIcon.

+2

En mi qtcreator se llama "toolButtonStyle". –

+0

que es para QToolButton, el OP pregunta acerca de 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"); 
} 
Cuestiones relacionadas