1. #1
    Nouveau membre du Club
    Inscrit en
    mai 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : mai 2011
    Messages : 50
    Points : 36
    Points
    36

    Par défaut PyQt5 refuse de lancer mon script python "QApplication"

    Bonjour à tous,

    Je met mets un peu au python, et à PyQt pour le coté graphique.
    J'ai créé un .ui avec quelques boutons, rien de sorcier (sous Qt Designer)

    Voici mon code python :

    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
    import sys
     
    from PyQt5 import uic
    from PyQt5.QtGui import QFont, QIcon
    from PyQt5.QtWidgets import QApplication, QWidget,QMainWindow
     
    class MainWindow(QMainWindow):
        def __init__(self):
            super(MainWindow, self).__init__()
            self.ui = uic.loadUi("testpython.ui", self)
            self.echantillonage_button.clicked.connect(self.CalculEch)
     
    def CalculEch(self):
            focale = int(self.focale_box.toPlainText())
            taille_pixel = float(self.taille_px.value())
            echantillonage = 206 *  taille_pixel / float(taille_pixel)
            echantillonage_string = "Lechantillonage est de: " + str(echantillonage)
            self.LCD_echantillonage.setText(ehantillonage__string)
     
    if __name__ == "__main__":
        app = QtGui.QApplication(sys.argv)
        window = MyApp()
        window.show()
        sys.exit(app.exec_())
    et mon code ui :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <ui version="4.0">
     <class>MainWindow</class>
     <widget class="QMainWindow" name="MainWindow">
      <property name="geometry">
       <rect>
        <x>0</x>
        <y>0</y>
        <width>1426</width>
        <height>1091</height>
       </rect>
      </property>
      <property name="windowTitle">
       <string>MainWindow</string>
      </property>
      <widget class="QWidget" name="centralwidget">
       <widget class="QPushButton" name="echantillonage_button">
        <property name="geometry">
         <rect>
          <x>250</x>
          <y>70</y>
          <width>171</width>
          <height>46</height>
         </rect>
        </property>
        <property name="text">
         <string>Echantillonage</string>
        </property>
       </widget>
       <widget class="QTextEdit" name="focale_box">
        <property name="geometry">
         <rect>
          <x>40</x>
          <y>50</y>
          <width>141</width>
          <height>41</height>
         </rect>
        </property>
       </widget>
       <widget class="QDoubleSpinBox" name="taille_px">
        <property name="geometry">
         <rect>
          <x>40</x>
          <y>110</y>
          <width>141</width>
          <height>41</height>
         </rect>
        </property>
        <property name="maximum">
         <double>20.000000000000000</double>
        </property>
        <property name="value">
         <double>5.400000000000000</double>
        </property>
       </widget>
       <widget class="QLCDNumber" name="LCD_echantillonage">
        <property name="geometry">
         <rect>
          <x>40</x>
          <y>170</y>
          <width>141</width>
          <height>51</height>
         </rect>
        </property>
        <property name="font">
         <font>
          <family>Gadugi</family>
          <weight>75</weight>
          <bold>true</bold>
         </font>
        </property>
        <property name="smallDecimalPoint">
         <bool>false</bool>
        </property>
       </widget>
      </widget>
      <widget class="QMenuBar" name="menubar">
       <property name="geometry">
        <rect>
         <x>0</x>
         <y>0</y>
         <width>1426</width>
         <height>38</height>
        </rect>
       </property>
      </widget>
      <widget class="QStatusBar" name="statusbar"/>
     </widget>
     <resources/>
     <connections/>
    </ui>
    J'obtiens l'erreur suivante :

    AttributeError: 'module' object has no attribute 'QApplication' .

    Connaissez vous une idée du pourquoi ?

    En vous remerciant par avance !

  2. #2
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    9 836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 9 836
    Points : 16 056
    Points
    16 056

    Par défaut

    Citation Envoyé par yonafunu Voir le message
    Connaissez vous une idée du pourquoi ?
    Si vous écrivez app = QtGui.QApplication(sys.argv) et que çà dit "'module' object has no attribute 'QApplication'", le module dont çà parle est QtGui.
    D'ailleurs pourquoi aller le chercher là, vu ce que vous avez écrit ligne 5?
    Nota, évidement, çà plantera à la ligne suivante... puis à la ligne 11 puis... Si vous vous lancez dans la programmation avec PyQt sans comprendre les erreurs de bases que vous devriez pouvoir corriger en relisant votre code, c'est pas gagné...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Inscrit en
    mai 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : mai 2011
    Messages : 50
    Points : 36
    Points
    36

    Par défaut

    Bonjour wiztricks et merci pour la réponse.

    J'ai essayé pas mal de combinaisons différentes, avec ou sans la ligne 5 etc...
    Il faut bien importer QApplication au départ si je souhaite l'utiliser ensuite. Le soucis étant que l'erreur intervient à la 5eme ligne, comme si le module n'existait pas.

  4. #4
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    9 836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 9 836
    Points : 16 056
    Points
    16 056

    Par défaut

    Citation Envoyé par yonafunu Voir le message
    Il faut bien importer QApplication au départ si je souhaite l'utiliser ensuite. Le soucis étant que l'erreur intervient à la 5eme ligne, comme si le module n'existait pas.
    Si ligne 5 l'instruction from PyQt5.QtWidgets import QApplication fonctionne:
    1. çà dit que QApplication est dans le module QtWidgets (et non dans QtGui),
    2. la variable QApplication a été crée, on peut l'utiliser sans rien devant.

    donc ligne 21, il faut se rappeler de ce qui a été fait ligne 5...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 3 150
    Points : 4 833
    Points
    4 833

    Par défaut

    Salut,

    J'ai l'impression que le message d'erreur ne correspond pas à ce code.

    Tu aurais dut avoir d'abord une erreur ici:
    Le module QtGui n'a pas été importé.

  6. #6
    Nouveau membre du Club
    Inscrit en
    mai 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : mai 2011
    Messages : 50
    Points : 36
    Points
    36

    Par défaut

    Merci à vous pour vos réponses.
    Du coup j'avance et je passe les erreurs les unes après les autres

    Le code en l'état:

    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
    import sys
     
    from PyQt5 import uic
    from PyQt5.QtGui import QFont, QIcon
    from PyQt5.QtWidgets import QApplication, QWidget,QMainWindow
     
    class MainWindow(QMainWindow):
        def __init__(self):
            super(MainWindow, self).__init__()
            self.ui = uic.loadUi('C:\\Users\\Athan\\Desktop\\testpython.ui', self)
            self.setupUi(self)
            self.echantillonage_button.clicked.connect(self.CalculEch)
     
        def CalculEch(self):
            focale = int(self.focale_box.toPlainText())
            taille_pixel = float(self.taille_px.value())
            echantillonage = 206 *  taille_pixel / float(taille_pixel)
            echantillonage_string = "Lechantillonage est de: " + str(echantillonage)
            self.LCD_echantillonage.setText(ehantillonage__string)
     
        if __name__ == "__main__":
            app = QApplication(sys.argv)
            window = MainWindow()
            window.show()
            sys.exit(app.exec_())
    Et la je coince, avec :

    AttributeError: 'MainWindow' object has no attribute 'CalculEch'

    Or CalcuEch est bien défini non ?
    A mon avis c'est la dernière erreur


  7. #7
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    9 836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 9 836
    Points : 16 056
    Points
    16 056

    Par défaut

    Citation Envoyé par yonafunu Voir le message
    Et la je coince, avec :

    AttributeError: 'MainWindow' object has no attribute 'CalculEch'

    Or CalcuEch est bien défini non ?
    Cà c'est l'erreur à la ligne 11 que je mentionnais dans mon premier post.
    Mais vous devriez avoir l'erreur NameError: name 'MainWindow' is not defined avec le dernier code que vous avez posté
    Avant de poster, vous devriez relire votre prose (et votre code) - vous avez un bouton "prévisualisation du message"...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. SWIG probleme pour lancer le script python dans mon code C++ et récupérer un objet
    Par spartan811 dans le forum Interfaçage autre langage
    Réponses: 3
    Dernier message: 11/05/2012, 16h23
  2. probleme pour lancer mon script
    Par cylyluz dans le forum Linux
    Réponses: 1
    Dernier message: 05/05/2009, 17h49
  3. [Système] Lancer un script python en PHP
    Par gannher dans le forum Fonctions
    Réponses: 10
    Dernier message: 13/09/2007, 11h24

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