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
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|