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 :

Interface PyQt4 sous windows XP


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut Interface PyQt4 sous windows XP
    Bonjour,

    j'utilise le code ci-dessous pour afficher une interface graphique avec des boutons faisant appel à différentes fonctions, voici le code :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
     
    import sys,os
    from Tkinter import *
    import tkFileDialog
    from PyQt4 import QtCore, QtGui
    from Carte_defaut import *
    from Traitements_image import *
    from exemple_3D import *
    from fileopen import *
     
    h = 300
    l = 575
     
    class Frame(QtGui.QMainWindow):
        def __init__(self, parent=None):
            QtGui.QMainWindow.__init__(self, parent)
            self.resize(l,h)
            self.setFont(QtGui.QFont("Verdana"))
            self.setWindowTitle("Traitement données thermographie IR")
            try:
                self.setWindowIcon(QtGui.Icon("icon.jpg"))
            except:pass
     
            fen = QtGui.QDesktopWidget().screenGeometry()
            size = self.geometry()
            self.move((fen.width()-size.width())/2, (fen.height()-size.height())/2)
     
     
            #Création de la barre de statut avec les informations voulues.
            self.statusBar().showMessage("Identification de la taille des défauts")
     
            menubar = self.menuBar() ## Création d'une barre de menu
            file_ = menubar.addMenu("Fichier") ## Ajout d'un menu.
     
     
            #Ajout de la fenêtre Ã* onglets
            self.tabWidget = QtGui.QTabWidget(self)
            self.tabWidget.setGeometry(0,20,l,h-40)
     
            #Création de deux QWidget qui permettront ensuite de créer les pages du QTabWidget
            self.pnl_1 = QtGui.QWidget(self.tabWidget)
     
            #À noter que le parent du QWidget peut aussi bien être le QTabWidget 
        #ou le QMainWindows. Personnellement, je préfère la première solution afin 
        #de garder une hiérarchie cohérente dans le code.
            self.pnl_2 = QtGui.QWidget(self)
            self.pnl_3 = QtGui.QWidget(self)
            self.pnl_4 = QtGui.QWidget(self)
     
            #Ajout des QWidgets en temps que Tab du QTabWidget.
        #Le premier Tab portera le nom Entrée et le deuxième le nom Lecture.
            self.tabWidget.addTab(self.pnl_1, "Courbe d'erreurs 2D")
            self.tabWidget.addTab(self.pnl_2, "Courbe d'erreurs 3D")
            self.tabWidget.addTab(self.pnl_3, "Traitement images")
     
            #Modification de la couleur de fond des QWidget.
            self.pnl_1.setPalette(QtGui.QPalette(QtGui.QColor("white")))
            self.pnl_1.setAutoFillBackground(True)
            self.pnl_2.setPalette(QtGui.QPalette(QtGui.QColor("white")))
            self.pnl_2.setAutoFillBackground(True)
            self.pnl_3.setPalette(QtGui.QPalette(QtGui.QColor("white")))
            self.pnl_3.setAutoFillBackground(True)
            self.pnl_4.setPalette(QtGui.QPalette(QtGui.QColor("white")))
            self.pnl_4.setAutoFillBackground(True)
     
     
     
            self.gene = QtGui.QPushButton("Carte temperature 2D (couleur)", self.pnl_1)
            self.gene.move(110, 50)
            self.gene.clicked.connect(Carte_erreur_C)
     
            self.gene = QtGui.QPushButton("Carte temperature 2D (niveau de gris)", self.pnl_1)
            self.gene.move(110, 150)
            self.gene.clicked.connect(Carte_erreur_NB)
     
     
            self.gene = QtGui.QPushButton("Carte temperature 3D (points)", self.pnl_2)
            self.gene.move(110, 50)
            self.gene.clicked.connect(Carte_erreur_3D_P)
     
            self.gene = QtGui.QPushButton("Carte temperature 3D (contour)", self.pnl_2)
            self.gene.move(110, 100)
            self.gene.clicked.connect(Carte_erreur_3D_contour)
     
            self.gene = QtGui.QPushButton("Carte temperature 3D (surface)", self.pnl_2)
            self.gene.move(110, 150)
            self.gene.clicked.connect(exemple3D_2)
     
            self.gene = QtGui.QPushButton("Seuillage", self.pnl_3)
            self.gene.move(110, 50)
            self.gene.clicked.connect(Seuillage)
     
            self.gene = QtGui.QPushButton("Coupe sur X", self.pnl_3)
            self.gene.move(110, 100)
            self.gene.clicked.connect(Coupe_sur_x)
     
            self.gene = QtGui.QPushButton("Coupe sur Y", self.pnl_3)
            self.gene.move(110, 150)
            self.gene.clicked.connect(Coupe_sur_y)
     
     
    if __name__ == '__main__':
        app = QtGui.QApplication(sys.argv)
        frame = Frame()
        frame.show()
        sys.exit(app.exec_())
    Ce code marche très bien mais uniquement pour une utilisation c'est à dire que, quand je lance le programme, mon interface graphique s'affiche, je clique ensuite sur un bouton qui déclenche une fonction mais après ceci, si je clique directement sur un autre bouton ça bugue !!

    Est ce que quelqu'un aurait une solution pour que je puisse utiliser plusieurs fonctions sans avoir à relancer à chaque fois le programme de l'interface ??

    Merci d'avance.

    Cordialement.

  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,

    Tu sais que tous tes boutons ont le même nom ?


    C'est la dernière connection qui est conservée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    self.gene.clicked.connect(Coupe_sur_y)

  3. #3
    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
    Au temps pour moi, en les connectant au fur et à mesure les connexions sont validées en même temps.

    Cela dit, ton bug, que tu ne décris pas, n'est pas dans ce code.

    Si on supprime les imports le code fonctionne. Le problème doit venir d'un des imports.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut
    Alors en effet ça marche sauf pour l'affichage des graphs. Concernant la première fonction activée, son graph s'affiche nickel par contre dès que j'active ensuite une deuxième fonction, elle s'exécute correctement sauf pour la fenètre du graph qui s'affiche vide sans le graph......

    Je ne sais pas d'où vient le problème ??

    Est ce que tu aurais une idée ?

    Merci d'avance.

    Cordialement.

  5. #5
    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
    Ben non, pour tester ton code j'ai supprimé les imports que je ne pouvais pas garder, je n'ai pas ces fichiers, ces graphes.

  6. #6
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je confirme que la partie purement PyQt4 fonctionne.

    Quand à la partie graphe: est-elle en tkinter? (cf les importations). Je n'ai pas encore vu de mélange entre PyQt4 et tkinter dans le même programme.

Discussions similaires

  1. interface graphique sous WINDOWS
    Par Creezys dans le forum Windows
    Réponses: 7
    Dernier message: 08/07/2014, 00h47
  2. Interface graphique sous windows.
    Par MysteryGummy dans le forum Débuter
    Réponses: 4
    Dernier message: 23/06/2010, 10h48
  3. Réponses: 1
    Dernier message: 08/10/2009, 09h28
  4. oracle-interface PHP sous windows
    Par nonaM1982 dans le forum Oracle
    Réponses: 1
    Dernier message: 17/02/2006, 17h13

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