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 :

essai interface


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 70
    Par défaut essai interface
    Bonjour,

    J'ai essayé de créer une interface qui permette d'ouvrir une image dans une fenêtre et je je n'arrive pas à finir ce programme car l’interpréteur me dit qu'il n'a pas le nom "fenetre" de défini pourtant c'est le nom de ma class de départ, je me suis dit que mon problème venait de la partie __init__ mais je ne vois vraiment pas où. Je ne suis pas sur de maitriser encore totalement les outils Qwidgets, merci d'avance pour votre réponse.

    Mon programme python en pièce jointe
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    erreur d'indentation j'imagine, je ne suis pas sur que main doit être une méthode de classe. (je suis sur mobile, pas pratique)

  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
    Salut,

    Tu as deux QApplication déclarées, on ne peut en déclarer qu'une, au tout début de préférence.

    Il n'est pas normal de trouver ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	def main():
    		app = QApplication(sys.argv)
    		ex = fenetre(QWidget)
    		fenetre.show()
    		sys.exit(app.exec_())
     
    	if __name__ == '__main__':
    		main()
    ... à l'intérieur de ta classe !

    Ceci est suspect aussi: super(self, changcanal).__init__(parent) ceci: super().__init__(parent) est tout à fait suffisant.

    Je n'ai pas tout regardé ....

  4. #4
    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,

    J'ai essayé de corriger ton code, mais il y a beaucoup trop de choses à revoir.

    Essaie de faire d'abord une fenêtre toute simple et enrichie-là progressivement.

    Voilà un exemple minimum (Python v3.5 et PyQt5 v5.9):

    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
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    import sys
    from PyQt5 import (QtWidgets, QtCore)
     
    #############################################################################
    class Fenetre(QtWidgets.QWidget):
     
        #========================================================================
        def __init__(self, parent=None):
            super().__init__(parent)
     
            self.resize(300, 200)
            self.setWindowTitle("Exemple de fenêtre")
     
            self.bouton1 = QtWidgets.QPushButton("bouton 1", self)
            self.bouton1.clicked.connect(self.clictest1)
     
            self.bouton2 = QtWidgets.QPushButton("bouton 2", self)
            self.bouton2.clicked.connect(self.clictest2)
     
            posit = QtWidgets.QGridLayout()
            posit.addWidget(self.bouton1, 0, 0)
            posit.addWidget(self.bouton2, 1, 0)
            self.setLayout(posit)
     
        #========================================================================
        def clictest1(self):
            QtWidgets.QMessageBox.information(self, 
                "Information", 
                "Click bouton 1!")
     
        #========================================================================
        def clictest2(self):
            QtWidgets.QMessageBox.information(self, 
                "Information", 
                "Click bouton 2!")
     
    #############################################################################
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        fen = Fenetre()
        fen.show()
        sys.exit(app.exec_())

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 70
    Par défaut
    Merci pour vos réponses, elles vont m'aider.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 70
    Par défaut
    Bon, en fait, un autre problème c'est posé, j'ai essayé de faire plus simple en m'inspirant de ton code, tyrtamos, mais quand j'essaye de le lancer (ton code marche) mon code, lui ne marchent pas et il me dit que le QPushButton n'est pas défini, j'ai pourtant garder les même lignes que toi pour le définir
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/04/2015, 10h04
  2. J'essaie d'utiliser JNI (Java Native Interface)
    Par GérardMartinelli dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 03/12/2010, 14h35
  3. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  4. [VB6] [Interface] Horloge 7 segments
    Par selenay dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/10/2002, 16h15
  5. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27

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