devil2407
Messages postés23Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention12 janvier 2011
-
12 août 2008 à 15:33
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024
-
14 août 2008 à 12:08
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?
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 12 août 2008 à 16:50
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...
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);
}
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...
devil2407
Messages postés23Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention12 janvier 2011 14 août 2008 à 09:47
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...
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 14 août 2008 à 10:08
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...