Wxwidgets wxValidator

Résolu
zaibacker Messages postés 97 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 24 janvier 2018 - 3 mai 2006 à 14:31
fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 - 3 mai 2006 à 18:20
Bonjour , j'ai créé des wxSpinCtrl et des wxComboBox,le soucis cest que lon peut ecrire à linterieur alors que pour le wxSpinCtrl je veux que l'utilisateur ne puisse rien ecrire dedans ,il utilisera juste les 2 boutons qui sont fourni pour incrementer et diminuer la valeur ; et pour le wxComboBox je ne veux pas quil puisse saisir a linterieur de la fenetre,seulement la liste que je lui fourni..

Dans leur constructeur il y a un parametre de wxValidator qui doit surement agir sur la saisie ou non de lutilisateur.
Je ne sais pas sil faut utiliser cette classe ou alors sa classe dérivée wxGenericValidator.
Si quelqu'un a un exemple a me fournir......

Merci

5 réponses

fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 1
3 mai 2006 à 15:40
Bonjour,


voici un exemple de déclaration de combobox sans possibilité de saisir (uniquement sélection d'élément de la liste)


   wxString cbStrings[4] =   {_("un"), _("deux"), _("trois")};


   cbFileFormat = new wxComboBox(BasePanel, ID_COMBOBOX, _("deux"), wxDefaultPosition,

                                
wxDefaultSize, WXSIZEOF(cbStrings), cbStrings, wxCB_READONLY);

c'est le style wxCB_READONLY qui fait que la saisie n'est pas possible.

Cordialement

Fred Cailleau-Lepetit
Soft In The Box
Forum wxWidgets en français
3
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
3 mai 2006 à 14:43
 combo_play = new wxComboBox( this, ID_PLAY_COMBO );

avec ca l'user ne peu pas ecire, j'ai mis les valeurs par rapport a des variables fixes

@+;
satellite34

http://wxcod.free.fr/forum/
0
zaibacker Messages postés 97 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 24 janvier 2018
3 mai 2006 à 14:50
_pCombo = new

wxComboBox(this

,ID_COMBOBOX_P,_elements[0], wxPoint(100,103),wxSize(150,20), 2, _elements,wxCB_SORT |wxCLOSE_BOX, wxDefaultValidator, wxT("comboBox"));

Bin avec moi ca


,jarrive a ecrire dedans et je comprend pas pourquoi,dou je pense je dois retoucher au wxDefaultValidator.
_elements est un tableau de chaine de caractere fixe,yen a dans ce cas 2 ,lutilisateur doit en choisir 1 mais il peut saisir a linterieur de la combobox alors que ca ne lui devrait pas etre permis
0
zaibacker Messages postés 97 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 24 janvier 2018
3 mai 2006 à 17:09
Ok je vous remercie a tous les 2.

Fredcl oui en effet,ton wxCB_READONLY marche à merveille sur mes combobox,je ten remercie,mais tu n'aurais pas l'equivalent pour une SpinCtrl par hasard?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 1
3 mai 2006 à 18:20
Bonjour,



je n'ai pas trouvé comment rendre la partie text d'un wxSpinCtrl en
lecture seule, je ne pense pas que cela soit possible facilement.

En revanche une astuce possible :

Il suffit d'émuler un wxSpinCtrl avec un wxSpinButton et un wxTextCtrl,
le contrôle texte seras en lecture seule, et il sera mis à jour

à chaque événement EVT_SPIN(id, func) en récupérant la valeur du
wxSpinButton avec sa fonction membre wxSpinButton::GetValue

et en écrivant cette valeur dans le contrôle texte avec wxTextCtrl::SetValue.

Cordialement

Fred Cailleau-Lepetit
Soft In The Box
Forum wxWidgets en français
0
Rejoignez-nous