Communication entre les fenetres [wxWidgets] - C++ - Programmation
Marsh Posté le 27-12-2005 à 17:24:42
ritzle a écrit : bonjour, |
tu pourrais passer tes parametres par reference dans le constructeur de ta boite de dialogue:
par exemple:
Code :
|
puis lorsque tu clique ok dans la boite de dialogue tu en profites pour les enregistrer dans un fichier,tu refiles toutes les données dans data que tu recuperes alors dans la mainframe. et voilou.
qu'en penses tu?
Marsh Posté le 27-12-2005 à 17:29:41
pas mal, mais quand je démarre le programme (donc la fenetre fille n'est pas appelée), comment je récupère les données depuis la mainframe ? Si je dois lire dans le fichier, alors autant le faire systématiquement plutôt que de passer les paramètres par référence
Marsh Posté le 27-12-2005 à 17:46:51
ritzle a écrit : pas mal, mais quand je démarre le programme (donc la fenetre fille n'est pas appelée), comment je récupère les données depuis la mainframe ? Si je dois lire dans le fichier, alors autant le faire systématiquement plutôt que de passer les paramètres par référence |
comprend pas bien
si ta boite de dialogue n'est pas appelée au demarrage, elle n'existe pas, donc pas possible d'y lire les données, non?
moi je ferais un test au demarrage pour voir si ton fichier de config existe. si il existe, tu y lis les données, sinon tu lance automatiquement la boite de dialogue.
je pense qu'il est preferable de passer les données par references malgré tout car cela doit etre plus rapide et efficace que de relire dans le fichier que tu auras créé.
Marsh Posté le 28-12-2005 à 22:38:26
Je vais faire comme tu me l'as suggéré, merci pour ton aide.
J'ai encore un problème, c'est pour les boutons radio. Pour l'instant tous mes boutons radio ont l'air reliés entre eux, quand je coche l'un d'eux les autres se décochent, or je veux plusieurs "zones"
J'utilise la classe wxRadioButton, mais à priori il faut d'abord utiliser wxRadioBox, le problème est que je ne sais pas comment faire, la documentation est minable et je n'ai pas trouvé d'exemple de code qui pourrait m'aider. Quelqu'un pourrait m'expliquer ?
Marsh Posté le 29-12-2005 à 07:49:06
ritzle a écrit : Je vais faire comme tu me l'as suggéré, merci pour ton aide. |
pour pouvoir creer plusieurs groupes de radiobutton, il suffit de preciser wxRB_GROUP en creant le bouton:
exemple:
Code :
|
c'est dans la doc de wxWidgets, pas si mal faite que ca
Marsh Posté le 29-12-2005 à 10:56:36
Je te remercie. On va mettre ça sur le fait que je ne suis pas encore très à l'aise avec wxWidgets
Marsh Posté le 02-01-2006 à 01:03:58
sankukai8 a écrit :
|
Maintenant j'ai un problème avec la récupération des données dans la mainframe.
J'ai cree un evenement lors du clic sur OK, qui execute la fonction OnOK (void Dialog:: OnOK(wxCommandEvent& event); ) sensée modifier les données dans data. Le problème c'est que ma fonction ne connait pas l'objet data, vu que c'est uniquement au constructeur qu'il est transmis.
Comment dois-je faire ?
Marsh Posté le 02-01-2006 à 01:11:10
Code :
|
Avec ce code toute ma classe Dialog "voit" l'objet data et ses données, mais quand je retourne à la mainframe rien n'a changé pour elle.
Est-ce que je suis sur la bonne voie ou je me plante complètement ?
Marsh Posté le 02-01-2006 à 07:37:51
ritzle a écrit :
|
Que fait le Taclass data; ici? tu redefinis un objet Taclass alors qu'il est deja passé par reference dans le constructeur. il ne doit pas y etre. tu as acces a data directement sans le redefinir.
poste un extrait de ton code pour voir plus precisement
Marsh Posté le 02-01-2006 à 11:38:19
voilà la partie concernée :
Code :
|
en fait je n'ai pas accès à l'objet 'data' dans les méthodes de 'Dialog'
Marsh Posté le 02-01-2006 à 12:51:21
Code :
|
normal, car data ne fait pas partie de Dialog.Mais cette partie ne sert a rien. En effet lorsque tu construis ta boite de dialogue, tu devrais plutot faire:
Code :
|
note: tu n'es meme pas obligé de passer data par reference, car lorsque tu appelles dialog.showmodal, tu dois normalement te trouver dans une des methodes de la mainframe, et donc tu dois avoir ton data deja créé dans la mainframe qui est accessible.
Marsh Posté le 02-01-2006 à 12:59:37
C'est ce que j'ai fait, mais je veux recuperer les données tapées par l'utilisateur dans 'dialog'
à la limite je peux faire :
Code :
|
mais ca suppose que le wxTextCtrl *ChampPseudo1 soit public (et ce n'est pas très "propre" à priori...)
Marsh Posté le 02-01-2006 à 13:16:49
Code :
|
puis
Code :
|
Marsh Posté le 27-12-2005 à 16:27:03
bonjour,
J'ai un simple programme en C++ utilisant wxWidgets. La Frame principale permet d'ouvrir une boite de dialogue de configuration ressemblant à ceci :
Lorsque l'on clique sur OK, je veux pouvoir enregistrer les modifications dans un fichier, et que la Frame principale puisse lire la configuration, que ce soit juste après la validation des paramètres ou au démarrage du programme.
Je ne demande pas de code, mais plutôt la méthode pour faire tout ca.
Est-ce la fenêtre fille qui écrit dans le fichier, ou la parente ? Dans le premier cas, comment la parente lit-elle les paramètres de connexion ? Dans le second cas, comment la fille transmet-elle les données à la fenêtre parente ?
Merci
Message édité par ritzle le 27-12-2005 à 16:27:47