IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Fenêtre non modale : ouverture et fermeture

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Par défaut Fenêtre non modale : ouverture et fermeture
    Bonjour,

    Avec le code ci-dessous, je peut ouvrir une fenetre 2 en mode non modale avec un pushbutton sur ma fenetre 1.

    1/ Comment faire pour n'avoir qu'une seule fenetre 2, même si on appuie plusieurs fois sur le pushbutton de la fentre 1? (je ne vois pas quel condition je dois mettre)

    2/ Comment faire pour fermer la fenetre 2 a partir d'un autre pushbutton de la fenetre 1?

    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
     
    #include <QtGui>
     
    #include "fen1.h"
    #include "fen2.h"
    #include "ui_fen1.h"
     
    Fen1::Fen1(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::Fen1)
    {
        ui->setupUi(this);
        setWindowTitle(tr("1ere Fenetre")); // met titre de la fenetre
        move( ( QApplication::desktop()->width() - width() ) / 2,  ( QApplication::desktop()->height() - height() ) / 2 ); // pour centrer la fenetre sur l'ecran
    }
     
    Fen1::~Fen1()
    {
        delete ui;
    }
     
    void Fen1::on_pushButton_clicked()
    {
        Fen2 *dial = new Fen2(this); // affiche la 2eme fenetre en non modale
        dial->show();
    }
    Cordialement

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Tu déclares cette fenêtre Fen2 en membre de ta classe Fen1, et les boutons ne font que la "show/hide".

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Par défaut Merci
    Merci,

    comment on fait pour pour declarer la fenêtre Fen2 en membre de la classe Fen1?

    Cordialement

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class MaClasse {
    public:
        MaClasse(); // constructeur
        ~MaClasse(); // destructeur
     
    private:
        int membre1;
        QString membre2;
        Fen2* dial;
    };
     
    MaClasse::MaClasse() : dial(new Fen2(this))
    {
    }

    Je vous conseille quand même d'apprendre les bases du C++ (ou de l'objet, je ne sais pas ce qui vous manque) avant d'aller plus loin. Je n'ai pas de cours à vous conseiller sur ce site car je ne les connais pas, mais jetez un œil ici : http://cpp.developpez.com/cours/?page=general#cours-cpp

  5. #5
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Par défaut merci
    Je ne fais pas preuve de mauvaise volonté, j'ai lu et relu les tutoriaux diponibles ici et ailleurs sur le c++ et sur qt (pour info, je me debrouillais pas mal en delphi);

    Le probleme c'est qu'ils sont tous orienté sur des resolutions techniques et pas sur les bases pour commencer (a part les operateurs... riens sur les strucures de façons approfondies).

    je suis loin d'être un crack en c++, mais c'est pas cela qui me bloque actuellement.

    C'est bien la logique de fonctionnement de l'edi que l'on utilise (pour moi Qt). l'organisation des trois types de fichiers; les entêtes, les cpp, et les gui (pour la partie graphique).

    j'ai essayer avec tes indications, le code dans Fen1.h, mais sans succes.

    ci joint mon fichier

    Cordialement
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Par défaut merci
    Au calme, c'est mieux pour reflechir...Mais pas toujours realisable...

    J'ai compris, je posterais le resultat, mais j'ai encore un souci;

    1/ comment empecher l'ouverture de plusieurs fenetres ?
    2/ si je veux ouvrir plusieurs fenetres comment les refermer de la derniere ouverte a la premiere ?

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fenêtre non modale agissant comme JOptionPane
    Par Baptiste Wicht dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 27/05/2009, 11h57
  2. Fenêtre non modale
    Par ToraTora dans le forum MFC
    Réponses: 8
    Dernier message: 21/05/2008, 18h12
  3. Ouverture d'une fenêtre non modale dans un Thread
    Par Cyrill26 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/02/2008, 17h30
  4. Réponses: 1
    Dernier message: 30/05/2006, 22h54
  5. Réponses: 4
    Dernier message: 13/06/2004, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo