bonjour à tous,
Voila mon soucis : j'ai créé une fenêtre qui permet le réglage d'une partie de mon logiciel, a partir de cet fenêtre des boites de dialogues doivent être ouverte pour permettre des sous réglages en rapport avec ma fenêtre précédente, jusque la pas de soucis j'arrive bien a créer toute mes fenêtres etc..., seulement je ne sais pas comment retourner les informations renseignées par l'utilisateur dans les sous fenêtre à la fenêtre principal...
J'ai étudier la class QInputDialog pour essayer de la reproduire avec des QDialog a moi, sans succès j'ai une erreur de compilation me disant que je ne peu pas appeler ma méthode sans objet..., j'ai également essayer par le biais du constructeur de ma sous fenêtre en lui passant en paramètre la fenetre parent, encore un echec...
Donc pour résumer je veux que ma fenêtre principal (A) puisse récupérer les réglages effectué au sein de ma sous fenêtre (B).
J'espère avoir été clair dans mes explications.
pour info je met un bout de code correspondant a ma QDialog personnalisé, je suis preneur si vous avez une quelconque piste à me fournir.
Merci d'avance.
le .h
le .cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include "ui_frm_typeAlerte_insuffisant.h" class Frm_typeAlerte_insuffisante : public QDialog { Q_OBJECT public: Frm_typeAlerte_insuffisante(QDialog *parent = 0); int getTypeAlerte_Insuffisante(QDialog *parent = 0,bool *ok = 0); private slots: private: Ui::Frm_typeAlerte_insuffisante ui; };
l'instanciation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include "frm_type_alerte.h" /*------------------------------------------------------------------------------------------ Alerte Insuffisante ------------------------------------------------------------------------------------------*/ Frm_typeAlerte_insuffisante::Frm_typeAlerte_insuffisante(QDialog *parent) : QDialog(parent) { ui.setupUi(this); connect(ui.valider,SIGNAL(clicked()),this,SLOT(verif())); } int Frm_typeAlerte_insuffisante::getTypeAlerte_Insuffisante(QDialog *parent,bool *ok) { Frm_typeAlerte_insuffisante dialog(parent); int ret = dialog.exec(); if(ok) *ok = !!ret; if(ret) { if(ui.rb1->isChecked()) { return 1; } else if(ui.rb2->isChecked()) { return 2; } else { QMessageBox::warning(this,"Erreur","Vous devez choisir une des options disponnibles si dessus avant de valider"); } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 bool ok = false; int retour_typeAlerte_insu = Frm_typeAlerte_insuffisante::getTypeAlerte_Insuffisante(this,&ok); if(ok) { QMessageBox::warning(this,"retour",QString::number(retour_typeAlerte_insu)); }
Partager