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 :

Appuyé une deuxième fois sur le plugin, je veux bien lancher la main window au lieu de la pop-up window


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 61
    Par défaut Appuyé une deuxième fois sur le plugin, je veux bien lancher la main window au lieu de la pop-up window
    Bonjour,

    Je suis en train de développer un python plugin sur QGIS. J'ai deux interfaces : main window quand j'appuie sur un bouton, une pop-up window s'ouvre. Mon problème est quand je ferme tout, et j'appuie une autre fois sur le plugin c'est la pop -up window qui s'ouvre au lieu de la main window. Or, je veux bien que c'est la main window qui se lance. Voilà un extrait de l'appel à la pop-window :

    Code Python : 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
    def show(self):
     
           self.project.load()
     
           if self.project.tranus_project:
               self.tranus_folder.setText(self.project.tranus_project.path)
     
           self.activate_launch_button()
           self.launch_options_TRANUS()
           super(OptionsTRANUSDialog, self).show()   
     
       ......
       def launch_options_TRANUS(self):
     
           self.get_checked_list()
     
           if self.checked_list != [] :
     
               dialog = launch_tranus_dialog.LaunchTRANUSDialog(self.checked_list,self.folder,self.tranus_binaries,parent=self)
               dialog.show()
               result = dialog.exec_()
     
           self.reinitialise_checked_list()

    Voilà la classe de ma pop-up window :

    Code Python : 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
    27
    class LaunchTRANUSDialog(QtGui.QDialog, FORM_CLASS):
     
        def __init__(self,checked_list,project_directory,tranus_bin_path,parent=None):
            """Constructor."""
            super(LaunchTRANUSDialog, self).__init__(parent)
            self.setupUi(self)
     
            self.project = parent.project
            self.proj = QgsProject.instance()
     
            self.tranus_bin_path = tranus_bin_path
            self.project_directory = project_directory
            self.project = parent.project
            self.checked_list = checked_list
            self.is_all_checked = False
     
            self.tabs = self.findChild(QtGui.QTabWidget, 'tabWidget')
     
            self.proj = QgsProject.instance()
            #control actions
            self.tabs.blockSignals(True) 
            self.tabs.currentChanged.connect(self.onChange) 
            self.tabs.blockSignals(False) 
     
     def show(self):
            self.put_tabs()
            super(LaunchTRANUSDialog, self).show()

    Des pistes ? Merci.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Que veux-tu dire par " j'appuie une autre fois sur le plugin" ?

    C'est un bouton, une icône de lancement ?

  3. #3
    Membre confirmé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 61
    Par défaut
    Salut,

    Disons c'est une icône de lancement.

    En fait, le plugin est intégré dans QGIS. Voilà une capture comment il se présente dans QGIS : Nom : Capture.PNG
Affichages : 86
Taille : 4,2 Ko

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Difficile de se faire une idée avec cette portion de code, mais dans la fonction show() tu appelles directement la boîte de dialogue. À tous les coups.

    Ensuite, ceci: super(OptionsTRANUSDialog, self).show() c'est quoi ? le plugin lui-même ?
    Cette ligne de code se trouve après l'appel au dialogue, est-ce normal ?

    À part me poser ces questions, je ne vois rien d'autre.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/03/2017, 12h02
  2. Réponses: 4
    Dernier message: 29/06/2011, 11h00
  3. c# Le méchant databind charge une deuxième fois le page_load!
    Par cyrille_naert dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/12/2007, 16h37
  4. executer fonction javascript une seule fois sur un onchange
    Par sebdu dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 24/08/2007, 14h44
  5. [MySQL] parcourir une deuxième fois un résultat mysql avec mysql_fetch_row
    Par arnogef dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/04/2007, 14h35

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