interfaz - qbutton pyqt5
Qt QPushbutton icono sobre el texto (3)
Cuando creo un QPushButton con un icono, por defecto muestra el texto a la derecha del icono. ¿Hay alguna manera de que el texto se muestre debajo del ícono?
Esto no es posible con QPushButton
. En QPushButton
, las únicas opciones de ubicación (LayoutDirection) son LeftToRight
, RightToLeft
y Auto
. Pero puedes usar QToolButton
en QToolButton
lugar.
Use Qt Creator, cambie al panel de Diseño , agregue un QToolButton
y en el panel inferior derecho, verá una opción '' textFormat
'', en esa selección ToolButtonTextUnderIcon
.
Actualización: la opción textFormat
se ha cambiado a toolButtonStyle
en versiones recientes de Qt Creator (4.7.0).
Si puede, lo más fácil es usar un QToolButton en QToolButton lugar:
QToolButton* button = new QToolButton(this);
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
button->setIcon(myIcon);
button->setText("Sample text");
Si esa no es una opción, podría considerar crear su propio widget de botón, posiblemente derivado de QPushButton o QAbstractButton. En este caso, probablemente (no lo he intentado yo mismo) querrá enfocar la mayoría de sus esfuerzos en la reimplementación de paintEvent()
.
[Editar: lea los comentarios de alternativas que probablemente sean mucho más simples que esto]
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");
}