wxFormBuilder no agrega validadores en TextCtrl al código.
Estoy tratando de crear una aplicación usando wxwidgets. Creé un poco de GUI usando wxformbuilder y ahora quiero que uno de mis textctrl utilice un validador numérico. Lo configuré en wxformbuilder de esta manera:
Entonces hice validator_type
como wxTextValidator
, marcando validator_style
: wxFILTER_NUMERIC
y desmarcando wxFILTER_NONE
. Y establecí validator_data_type
como wxString
.
Pero parece que no hay código relacionado con los validadores en los archivos generados. Aquí está todo el código que funciona con ese textctrl:
m_textCtrl5 = new wxTextCtrl( m_panel9, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_RIGHT );
fgSizer9->Add( m_textCtrl5, 0, wxALL|wxEXPAND, 5 );
Intenté hacerlo antes y tuve el mismo problema. Generé una clase heredada y lo hice funcionar simplemente escribiendo ese código del validador yo mismo, pero no quiero hacer lo mismo ahora.
¿Estoy haciendo algo mal o simplemente esto no funciona?
davy.ai
Como experto en IT especializado en wxWidgets y wxFormBuilder, es importante destacar que wxFormBuilder no genera código para validadores de forma predeterminada. Por lo tanto, si deseas utilizar un validador con tu textctrl, deberás escribir el código tú mismo.
Para hacer esto, deberás crear un objeto wxTextValidator con el estilo de validación que deseas (en este caso wxFILTER_NUMERIC) y luego asociarlo a tu textctrl utilizando el método SetValidator().
Aquí tienes un ejemplo de cómo podrías modificar el código generado por wxFormBuilder para agregar un validador numérico a tu textctrl:
“`c++
m_textCtrl5 = new wxTextCtrl( m_panel9, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_RIGHT );
// Crea un wxTextValidator con el estilo wxFILTER_NUMERIC
wxTextValidator validator(wxFILTER_NUMERIC);
// Asocia el validador con el textctrl
m_textCtrl5->SetValidator(validator);
fgSizer9->Add( m_textCtrl5, 0, wxALL|wxEXPAND, 5 );
“`
Al agregar estas pocas líneas de código, ahora deberías tener un textctrl con un validador numérico adjunto a él.