Accueil > Forum > > > > Une deuxième QDialog?
Une deuxième QDialog?
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ée 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 dialog box au démarrage [ par genetin ]
Bonjour,Je voudrais qu'au démarrage de mon application, la fenêtre principale soit affichée, de même qu'une dialog box (qui serait active).J'ai essayé
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|