Clase wxButton
Jerarquía:

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()
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
GetDefaultSize()
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
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
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.