|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Une deuxième QDialog? [ Linux / GUI ] (devil2407)
Informations & options pour cette discussion
|
mardi 12 août 2008 à 15:33:12 |
Une deuxième QDialog?

devil2407
|
Salut à tous! Je viens ici parce que je suis désespéré! J'ai passé la matinée à chercher comme ouvrir une deuxieme QDialog avec Qt. En gros, j'ai une fenêtre principale qui appelle une QDialog dans laquelle j'ai la liste des règles de mon moteur d'inférence et je voudrais que sur clic du bouton "Ajouter" il m'ouvre une fenêtre contenant les champs "Regle" et "Fait" mais apparemment en déclarant celle-ci en QDialog, elle ne s'ouvre pas.
Deux QDialogs ne pourraient doc pas s'ouvrir en cascade?? Vous avez une idée?
Merci beaucoup!! Dams
|
|
|
|
mardi 12 août 2008 à 16:50:40 |
Re : Une deuxième QDialog?

buno
|
Hello, Je ne vois pas ce qui bloque: bien sûr que tu peux faire des dialogs en cascade... Dans la fonction de ton bouton, tu fais un taDialog.show() (ou .exec()). Il faut, bien sûr, que ta dialog soit créée...
@+ Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
|
|
mardi 12 août 2008 à 17:53:09 |
Re : Une deuxième QDialog?

devil2407
|
Merci pour ta réponse rapide Buno mais ca ne compile pas...voila ce que j'ai exactement comme code ca t'aidera peut etre :
FenetreRegles.cpp (hérite déjà d'un widget)
FenetreRegles::FenetreRegles(QWidget *parent = 0) : QDialog(parent) { PB_Ajouter = new QPushButton("Ajouter",this); PB_Ajouter->setToolTip("Ajouter une nouvelle règle") ; PB_Ajouter->setCursor(Qt::PointingHandCursor); PB_Ajouter->setIcon(QIcon("plus.png")); QObject::connect(PB_Ajouter, SIGNAL(clicked()), this, SLOT(OuvrirFenetreAj())); } void FenetreRegles::OuvrirFenetreAj() { FenetreAjMod *Ajout = new FenetreAjMod(this); Ajout.exec(); }
FenetreRegles.h class FenetreRegles : public QDialog // On hérite de QWidget (IMPORTANT) { public: FenetreRegles(QWidget *parent); public slots: void OuvrirFenetreAj() ; }
FenetreAjMod.cpp FenetreAjMod::FenetreAjMod(QDialog *parent = 0) : QDialog(parent) { ... } void FenetreAjMod::ouvrirDialogue() { ... }
FenetreAjMod.h class FenetreAjMod : public QDialog // On hérite de QWidget (IMPORTANT) { public: FenetreAjMod(QDialog *parent); }
J'ai vérifié dans chaque unité j'ai bien les bons #include... donc je ne vois pas pourquoi ca ne s'ouvre pas tel quel!! :'(
|
|
|
|
mardi 12 août 2008 à 18:11:14 |
Re : Une deuxième QDialog?

buno
|
ça ne compile pas dis-tu? Je vois 2 choses: - as-tu implémenté ton constructeur? Genre: FenetreAjMod(QDialog * parent){}; - Ajout->exec() et non "."
@+ Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
|
|
mardi 12 août 2008 à 18:19:41 |
Re : Une deuxième QDialog?

devil2407
|
Ben en fait dans ma premiere QDialog j'ai une fonction que j'appelle sur clic de bouton :
#include "FenetreAjMod.h" void FenetreRegles::OuvrirFenetreAj() { FenetreAjMod *Ajout = new FenetreAjMod(this); Ajout->exec(); }
et dans FenetreAjMod.h j'ai :
class FenetreAjMod : public QDialog { public: FenetreAjMod(QDialog *parent); }
Pour le ->, si je le remplace par un ".", il me met une erreur de compilation. Par contre je ne sais pas si j'ai fait la bonne déclaration pour ma deuxième QDialog... est-ce bien cela qu'il faut mettre si elle hérite d'une première QDialog?
Pour le .cpp : FenetreAjMod::FenetreAjMod(QDialog *parent = 0) : QDialog(parent)
Pour le .h class FenetreAjMod : public QDialog { public: FenetreAjMod(QDialog *parent); }
Dams
|
|
|
|
mardi 12 août 2008 à 18:21:03 |
Re : Une deuxième QDialog?

devil2407
|
Ca compile comme je l'ai codé. Mais lorsque je clique sur le bouton "Ajouter", rien ne s'affiche...pas même ma deuxième QDialog :'(
|
|
|
|
mercredi 13 août 2008 à 09:31:48 |
Re : Une deuxième QDialog?

buno
|
Hello, Alors moi, j'ai déclaré ceci dans mon .h
class FenetreAjMod : public QDialog { public: FenetreAjMod(QDialog *parent=NULL):QDialog(parent){}; }
Avec l'appel dans le cpp:
void testQT::onClick(bool) { FenetreAjMod * myDialog = new FenetreAjMod(); myDialog->exec(); }
Sachant que dans ma fenêtre principal (testQT) j'ai un PushButton qui s'appelle "ok" et que, dans le contructeur de ma fenêtre principale, j'ai connecté l'appui sur le bouton à ma fonction d'affichage de ma 2e dialog: QObject::connect(ok,SIGNAL(clicked(bool)),this,SLOT(onClick(bool)));
Et j'ai bien ma 2e dialog qui d'affiche au 1er plan quand j'appuie sur le bouton.
Est-ce que tu es sûr que tu passes dans la fonction quand tu clic qur ton bouton?
@+ Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
|
|
jeudi 14 août 2008 à 09:47:34 |
Re : Une deuxième QDialog?

devil2407
|
Effectivement, j'a placé un QMessageBox dans la fonction qui est censée m'ouvrir ma QDialog et même mon QMessageBox ne s'affiche pas donc le programme ne rentre pas dans ma fonction... pourquoi? ca c'est encore autre chose... l'appel me semble correct pourtant...
QObject::connect(PB_Ajouter, SIGNAL(clicked()), this, SLOT(OuvrirFenetreAj()));
|
|
|
|
jeudi 14 août 2008 à 10:08:31 |
Re : Une deuxième QDialog?

buno
|
Petit souci: le prototype du signal "clicked" veut un booléen en paramètre. Donc il faut corriger ta ligne comme ceci: QObject::connect(PB_Ajouter, SIGNAL(clicked(bool)), this, SLOT(OuvrirFenetreAj(bool)));
@+ Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
|
|
|
|
jeudi 14 août 2008 à 11:46:48 |
Re : Une deuxième QDialog?

devil2407
|
Réponse acceptée !
C'est bon pour la deuxième QDialog Buno... je viens de m'apercevoir que j'avais oublié dans le FenetreAjMod.h la ligne Q_OBJECT....  Tout ce temps perdu à cause de ça!! En tout cas merci beaucoup pour ton aide! Devil
|
|
|
Cette discussion est classé dans : ouvrir, ouvre, fenêtre, qdialog
Répondre à ce message
Sujets en rapport avec ce message
plusieurs fenêtre win32 [ par maevasa ]
bonjour,Voilà j'ai un programme qui ouvre sur un menu . Ce menu permet d'ouvrir plusieurs fenêtres mais lorque une est ouverte je ne peux pas cliquer
Ouvrir une sous-fenêtre depuis un bouton [Dev-cpp] [ par by_rabbit_08 ]
bonour! J'ai posté une question sur le forum l'autre, mais a voir, elle n'a pas été bien compris ... Enfait, j'imagine que pour beaucoup de monde, c'e
ouvrir plusieurs fichiers txt l'un apres l'autre [ par drcmomo ]
Bonjour tout le monde!!Je cherche a ouvrir plusieurs fichiers txt :exemple j'ouvre le premier j'extraires des données , j'ouvre le deuxieme j'extraire
ouvrir plusieurs fichiers txt l'un apres l'autre [ par drcmomo ]
Bonjour tout le monde!!Je cherche a ouvrir plusieurs fichiers txt :exemple j'ouvre le premier j'extraires des données , j'ouvre le deuxieme j'extraire
createprocess [ par JCShaolan ]
Bonjour tout le monde, je développe actuellement une application (jeu d'échec) avec une librairie qui s'appelle SDL. Et en fait, lorsqu'une pièce arri
Ouvrir un fenêtre internet [ par Arnauti ]
Bonjour, voilà, je suis débutant en C est j'aimerais savoir comment faire pour ouvrir une fenêtre internet depuis un programme MSDos.J'utilises DevCpp
Évènements du clavier [ par mast ]
Bonsoir,J'essais d'écrire une petite appli qui détecte les évènements du clavier pour ouvrir des applications. Par exemple F2 ouvrirait firefox, F3 th
Qt [ par Topnotch ]
BonjourJ'aimerais savoir comment créer une application avec Qt qui ouvre une deuxième fenêtre. Par exemple, lorsque je clique sur le bouton Ok de la f
Ouvrir une fenetre depuis un bouton place sur une autre fenetre [ par LucyUnDemi ]
Bonjour à tous.Je ne sais pas si la question a déjà été posée mais étant donné que je ne trouve pas de solution où que se soit sur ce forum ou ailleur
Ouvrir une deuxième fenêtre Win32 sous Dev-C++ [ par olivier007700 ]
Bonjour, Je souhaite ouvrir, depuis une première fenêtre, une deuxième fenêtre tout à fait classique.Quel est le code le plus simple pour ce faire ?Me
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|