button.h

Clase wxButton

Jerarquía:

Jerarquía de la clase wxButton
Jerarquía de la clase wxButton

Un botón es un control que contiene una cadena de texto, y es uno de los elementos más comunes de una GUI.

Puede colocarse en un cuadro de diálogo o en un panel wxPanel, o de hecho en casi cualquier otra ventana.

Por defecto, es decir, si no se especifica ninguno de los estilos de alineación, la etiqueta se centra tanto horizontal como verticalmente. Si el botón tiene una etiqueta y un mapa de bits, los estilos de alineación anteriores especifican la ubicación del rectángulo que combina la etiqueta y el mapa de bits, y la posición del mapa de bits establecida con wxButton::SetBitmapPosition() define la posición relativa del mapa de bits con respecto a la etiqueta (sin embargo, actualmente las combinaciones de alineación no predeterminadas no están implementadas en todas las plataformas).

Desde la versión 2.9.1 wxButton soporta mostrar tanto texto como una imagen (actualmente solo cuando se utilizan los ports wxMSW, wxGTK o wxOSX/Cocoa), ver los métodos SetBitmap() y SetBitmapLabel(), SetBitmapDisabled(). En las versiones anteriores de wxWidgets esta funcionalidad solo estaba disponible en (la ahora trivial) clase wxBitmapButton que sólo era capaz de mostrar una imagen sin texto.

Un botón puede tener una única imagen para todos los estados o diferentes imágenes para los siguientes estados (actualmente no se soportan diferentes imágenes en macOS, donde se utiliza la imagen normal para todos los estados):

  • normal: el estado por defecto
  • desactivado: mapa de bits que se muestra cuando el botón está desactivado.
  • pulsado: bitmap que se muestra cuando el botón está pulsado (por ejemplo, mientras el usuario mantiene pulsado el botón del ratón sobre él)
  • focus: bitmap que se muestra cuando el botón tiene el foco del teclado (pero no está pulsado ya que en este caso el botón está en estado pulsado).
  • current: bitmap que se muestra cuando el ratón está sobre el botón (pero no está pulsado aunque pueda tener el foco). Tenga en cuenta que si no se especifica el mapa de bits actual pero la interfaz de usuario de la plataforma actual utiliza imágenes hover para los botones (como Windows o GTK+), el mapa de bits de enfoque se utiliza también para el estado hover. Esto permite establecer solo el mapa de bits de enfoque para obtener un comportamiento razonablemente bueno en todas las plataformas.

Todos los mapas de bits deben tener el mismo tamaño y el mapa de bits normal debe establecerse primero (a un mapa de bits válido), antes de establecer cualquier otro. Además, si el tamaño de los mapas de bits se cambia más tarde, es necesario cambiar el tamaño del mapa de bits normal antes de establecer cualquier otro mapa de bits con el nuevo tamaño (y es necesario restablecer todos ellos, ya que sus valores originales se pueden perder cuando el tamaño del mapa de bits normal cambia).

La posición de la imagen dentro del botón se configura usando SetBitmapPosition(). Por defecto la imagen está a la izquierda del texto.

Hay que tener en cuenta también que GTK+ utiliza una configuración global llamada gtk-button-images para determinar si las imágenes deben mostrarse en los botones. Si está desactivado (que es el caso, por ejemplo, en Gnome 2.28 por defecto), no se mostrará ninguna imagen, en consonancia con el comportamiento nativo.

Estilos

Esta clase admite los siguientes estilos:

wxBU_LEFT:
Ajusta la etiqueta a la izquierda. Solo para Windows y GTK+.
wxBU_TOP:
Alinea la etiqueta en la parte superior del botón. Solo para Windows y GTK+.
wxBU_RIGHT:
Ajusta la etiqueta bitmap a la derecha. Solo para Windows y GTK+.
wxBU_BOTTOM:
Alinea la etiqueta en la parte inferior del botón. Solo para Windows y GTK+.
wxBU_EXACTFIT:
Por defecto, todos los botones tienen al menos el tamaño estándar, incluso si su contenido es lo suficientemente pequeño como para caber en un tamaño más pequeño. Esto se hace por consistencia, ya que la mayoría de las plataformas utilizan botones del mismo tamaño en los diálogos nativos, pero se puede anular especificando esta bandera. Si se especifica, el botón será lo suficientemente grande para su contenido. Tenga en cuenta que en MSW el botón seguirá teniendo al menos la altura estándar, incluso con este estilo, si tiene una etiqueta no vacía.
wxBU_NOTEXT:
Desactiva la visualización de la etiqueta de texto en el botón incluso si tiene una o su id es uno de los ids estándar de stock con una etiqueta asociada: sin usar este estilo un botón que se supone que sólo muestra un mapa de bits pero usa un id estándar mostraría también una etiqueta.
wxBORDER_NONE:
Crea un botón sin borde. Actualmente está implementado en MSW, GTK2 y OSX/Cocoa.

Eventos emitidos por esta clase

Las siguientes macros de manejadores de eventos redirigen los eventos a manejadores de funciones miembro 'func' con prototipos como:

void handlerFuncName(wxCommandEvent& event)

Macros de eventos para eventos emitidos por esta clase:

EVT_BUTTON(id, func):
Procesa un evento wxEVT_BUTTON, cuando se pulsa el botón.

Funciones miembro públicas

wxButton()

wxButton::wxButton()

Constructor por defecto.

wxButton()

wxButton::wxButton( wxWindow * parent, wxWindowID id, const wxString & label = wxEmptyString, const wxPoint & pos = wxDefaultPosition, const wxPoint & size = wxDefaultSize, long style = 0, const wxValidator & validator = wxDefaultValidator, const wxString & name = wxButtonNameStr )

Constructor, crea y muestra un botón.

La forma preferida de crear botones estándar es utilizar el valor por defecto de label. Si no se proporciona ninguna etiqueta e id es uno de los ID estándar de esta lista, se utilizará una etiqueta estándar. En otras palabras, si utiliza una constante wxID_XXX predefinida, simplemente omitir la etiqueta por completo en lugar de especificarla. En particular, los botones de ayuda (los que tienen id de wxID_HELP) en macOS no pueden mostrar ninguna etiqueta en absoluto y aunque wxButton detectará si se utiliza la etiqueta estándar "Ayuda" y la ignorará, el uso de cualquier otra etiqueta impedirá que el botón aparezca correctamente como un botón de ayuda, por lo que debe evitarse.

Además, el botón se decorará con los iconos estándar de GTK+ 2.

Parámetros
parent
Ventana padre. No debe ser NULL.
id
Identificador del botón. Un valor de wxID_ANY indica un valor por defecto.
label
Texto que se mostrará en el botón.
pos
Posición del botón.
size
Tamaño del botón. Si se especifica el tamaño por defecto, el botón tendrá el tamaño adecuado para el texto.
style
Estilo de la ventana. Ver descripción de la clase wxButton.
validator
Validador de la ventana.
name
Nombre de la ventana.
Ver también

Create() y wxValidator

Create()

wxButton::Create( wxWindow * parent, wxWindowID id, const wxString & label = wxEmptyString, const wxPoint & pos = wxDefaultPosition, const wxPoint & size = wxDefaultSize, long style = 0, const wxValidator & validator = wxDefaultValidator, const wxString & name = wxButtonNameStr )

Función de creación de botones en dos pasos.

Para más detalles, ver wxButton().

GetAuthNeeded()

bool wxButton::GetAuthNeeded() const

Devuelve true si se muestra un símbolo de autenticación necesaria en el botón.

Observaciones

Este método siempre devuelve false si la plataforma no es Windows Vista o posterior.

Ver también

SetAuthNeeded().

GetDefaultSize()

static wxSize wxButton::GetDefaultSize(wxWindow* win = NULL)

Devuelve el tamaño por defecto de los botones.

Se recomienda hacer todos los botones de diálogo del mismo tamaño y esta función permite recuperar el tamaño (dependiente de la plataforma y de la fuente actual) que debería ser el más adecuado para ello.

El argumento opcional win es nuevo desde wxWidgets 3.1.3 y permite obtener un tamaño específico DPI por monitor.

GetLabel()

wxString wxButton::GetLabel() const

Devuelve la etiqueta del botón.

Ver también

SetLabel().

Reimplementado desde wxWindow.

.

Reimplementado en wxCommandLinkButton.

SetAuthNeeded()

void wxButton::SetAuthNeeded(bool needed = true)

Establece si se debe mostrar un símbolo de autenticación necesaria en el botón.

Observaciones

Este método no hace nada si la plataforma no es Windows Vista o posterior.

Ver también

GetAuthNeeded().

SetDefault()

virtual wxWindow* wxButton::SetDefault()

Establece el botón como elemento predeterminado en su ventana de nivel superior (p. ej. el panel o el cuadro de diálogo que lo contiene).

Como es normal, pulsar return hace que se pulse el botón por defecto.

Ver también wxWindow::SetFocus() que establece el foco del teclado para ventanas y elementos del panel de texto, y wxTopLevelWindow::SetDefaultItem().

Observaciones

En Windows, solo los botones de los cuadros de diálogo responden a esta función.

Valor de retorno

El antiguo elemento por defecto (posiblemente NULL).

SetLabel()

void wxButton::SetLabel(const wxString & label)

Establece la etiqueta del botón.

Parámetros
label
La etiqueta a establecer..

Reimplementado desde wxWindow.

.

Reimplementado en wxCommandLinkButton.

Métodos y datos heredados

Esta clase hereda los métodos y datos miembro públicos y protegidos de wxControl, wxWindow y wxObject.