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

PyQt Python Discussion :

QMainWindow et QDialog


Sujet :

PyQt Python

  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut QMainWindow et QDialog
    Bonjour,

    Pourriez-vous m'expliquer comment inserer un dialog dans un main windows quand je fais file-new.

    En fait je voudrais une interface que me permet de faire apparaître certain formulaire en fonction de l'action.

    Je ne comprend pas comment faire pour associer deux fichier générer par pyuic.

    Merci de votre aide.

  2. #2
    Membre chevronné Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Par défaut
    mettons que tu as un fichier A.py qui contient la classe de fenetre a et un fichier B.py qui contient la classe de fenetre b

    si à un moment du A tu veux créer une instance de b, il faut mettre dans A :
    from B import *
    ou bien
    from B import b
    puis pour créer l'instance :
    instance_de_b=b()

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Merci, j'essaie de suite, enfin lundi quand je serais rentré de vacance

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Ca ne marche pas comme je voudrais, il m'affiche effectivement ma deuxième fenêtre mais indépendante de la première, j'ai fais ceci .

    Fichier Main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # -*- coding: utf-8 -*-
    import sys
    from qt import *
    from UI.FormMain_Impl import FormMain_Impl
    global w
    a = QApplication(sys.argv)
    QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()"))
    w = FormMain_Impl()
    a.setMainWidget(w)
    w.show()
    a.exec_loop()
    Fichier contenant les classes.
    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
    # -*- coding: utf-8 -*-
    import sys
    from qt import *
    from formmain import FormMain
     
     
     
    class FormMain_Impl(FormMain):
     
        def __init__(self,parent = None,name = None,fl = 0):
            FormMain.__init__(self,parent,name,fl)
            # Active l'action Fichier/Nouveau
            self.connect(self.Nouveau,SIGNAL("activated()"),self.formulaire1)        
     
        def formulaire1(self):
            from FormulaireNouveau_Impl import FormulaireNouveau_Impl
            a = QApplication(sys.argv)
            QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()"))
            forme = FormulaireNouveau_Impl()
            a.setMainWidget(forme)
            forme.show()
            a.exec_loop()
    Je pense que je devrais insérer l'instanciation forme, dans w initialiser dans le fichier main, mais je ne vois pas comment faire?

    Merci de votre aide.

  5. #5
    Membre chevronné Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Par défaut
    je vois pas trop l'interet de créer une nouvelle QApplication dans formulaire1
    normalement il suffit de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            from FormulaireNouveau_Impl import FormulaireNouveau_Impl
            forme = FormulaireNouveau_Impl()
            forme.show()
    je comprends pas trop:
    il m'affiche effectivement ma deuxième fenêtre mais indépendante de la première
    est-ce que tu veux créer des fenetres filles contenues dans ton instance de FormMain_Impl dans le style MDI ?

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    La façon que tu me proposes ne fonctionne pas, quand je fais fichier/nouveau, rien ne se passe.

    Je ne sais pas ce qu'est une MDI, je regarde sur Google, c'est peut-être ce que j'essaie de faire?

    [edit]: c'est bien une mdi, que je veux faire, et je voudrais donc faire un formulaire enfant à intégrer dans formMain.

    Merci de ton aide

  7. #7
    Membre chevronné Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 407
    Par défaut
    dans ce cas tu devrais regarder mdi.py dans le repertoire des exemples de PyQt

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

Discussions similaires

  1. Passer QString d'une QDialog vers QMainWindow
    Par piero53 dans le forum Débuter
    Réponses: 5
    Dernier message: 18/02/2012, 00h52
  2. recupéré le resulat d'une qdialog
    Par Blo0d4x3 dans le forum C++
    Réponses: 2
    Dernier message: 22/11/2004, 22h16

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