c++ - signal - qt eventos
Diferencia entre QPushButton y QToolButton (2)
Desde Qt doc: http://doc.qt.io/qt-5/qtoolbutton.html#details
"Un botón de herramienta es un botón especial que brinda acceso rápido a comandos u opciones específicas. A diferencia de un botón de comando normal, un botón de herramienta generalmente no muestra una etiqueta de texto, sino que muestra un icono".
Cuando quiero un botón en la GUI simple con solo un icono, uso QToolButton. Pero cuando quiero un botón clásico, uso QPushButton.
No hay grandes diferencias,
Soy nuevo en Qt y la diferencia entre QPushButton
y QToolButton
no es tan clara para mí.
Sé que un QToolButton
se usa generalmente en un QToolBar
y generalmente solo muestra un icono, sin texto, pero no entiendo muy bien la diferencia principal entre ambos.
¿Tiene alguna diferencia más grande? ¿Cuándo debo usar QPushButton
y cuándo debo usar QToolButton
?
Me gustaría saber esto para usar el botón más apropiado, y necesito realizar algunas pruebas de GUI y tal vez pueda ser relevante.
QToolButton
forma parte de un grupo de widgets en el módulo QtWidgets que se centra en QAction
: QMenu
, QToolBar
, etc. QPushButton
es solo un botón. Como resultado, QToolButton
es mucho más complejo bajo el capó que QPushButton
. Una lista (no completa) de ejemplos:
-
QToolButton
está diseñado para integrarse estrechamente conQAction
. El cambio del icono, texto, etc. de la acción predeterminada de un botón de la herramienta se refleja en el botón. - Puede cambiar el diseño del contenido del botón de la herramienta (solo icono, solo texto, texto junto al icono, texto debajo del icono).
-
QToolButton
admite un tipo de botón "dividir" donde una zona activa de barra lateral abre un menú en lugar de activar la acción predeterminada. - Los botones de herramientas se pueden crear directamente en un
QToolBar
agregando una acción, mientras que otros widgets deben agregarse explícitamente.
También tenga en cuenta que:
-
QToolButton
tiene márgenes internos predeterminados más pequeños queQPushButton
, lo que refleja que se debe mostrar en una fila o cuadrícula ajustada.QPushButton
es más para los botones de tipo "Ok" / "Cerrar" que contienen texto con un icono opcional. - Un
QToolButton
generalmente debe tener un icono. UnQPushButton
siempre debe tener texto.