Diferencia entre QPushButton y QToolButton

2 minutos de lectura

avatar de usuario
KelvinS

Soy nuevo en Qt y la diferencia entre QPushButton y QToolButton no me queda tan claro.

yo se que un QToolButton generalmente se usa en un QToolBar y suele mostrar solo un icono, sin texto, pero no entiendo muy bien la principal diferencia entre ambos.

¿Tiene alguna diferencia mayor? ¿Cuándo debo usar QPushButton y cuando 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.

  • Usted mismo explicó la diferencia: uno está diseñado para usarse en una barra de herramientas, el otro como un botón normal en la interfaz de usuario (por ejemplo, en un cuadro de diálogo, tendría los botones “Aceptar” y “Cancelar”). ¿Tiene una pregunta específica de UI / UX que no está preguntando?

    – pimienta

    25 de julio de 2016 a las 20:13

avatar de usuario
jonspaceharper

QToolButton es parte de un grupo de widgets en el módulo QtWidgets que se centra en QAction: QMenu, QToolBarEtcétera. 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 con QAction. Cambiar el icono, el texto, etc. de la acción predeterminada de un botón de 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 al lado del icono, texto debajo del icono).
  • QToolButton admite un tipo de botón “dividido” en el que una zona activa de la 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 que QPushButtonlo que refleja que está destinado a mostrarse en una fila o cuadrícula apretada. QPushButton es más para los botones de tipo “Ok”https://stackoverflow.com/”Cerrar” que contienen texto con un ícono opcional.
  • A QToolButton generalmente debe tener un icono. A QPushButton siempre debe tener texto.

Desde Qt doc: http://doc.qt.io/qt-5/qtoolbutton.html#detalles

“Un botón de herramienta es un botón especial que brinda acceso rápido a comandos u opciones específicos. A diferencia de un botón de comando normal, un botón de herramienta generalmente no muestra una etiqueta de texto, sino un ícono en su lugar”.

Cuando quiero un botón en la GUI simple con solo un ícono, uso QToolButton. Pero cuando quiero un botón clásico, uso QPushButton.

Sin grandes diferencias,

¿Ha sido útil esta solución?