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 :

Probleme de fonctionnement du signal avec pyqt5


Sujet :

PyQt Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2020
    Messages : 25
    Points : 15
    Points
    15
    Par défaut Probleme de fonctionnement du signal avec pyqt5
    bonjour et merci de m'avoir accepté parmi vous. Je suis nouveau dans le forum et nouveau dans la programmation python.
    J'ai un code qui doit tester le fonctionnement d'un signal. En fait sur la fenetre graphique, je dois dois cliquer sur un bouton crée à partir d'une classe comme l'indique mon code pour récupérer le contenu de la QLineEdit et afficher dans un QLabel. Mais la fenetre s'affiche bien mais aucune action lorsque je clique sur le bouton. Quelqu'un pourrait il m'aider pour me souhaiter la bienvenue? merci.

    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
    import sys
    from PyQt5.QtWidgets import*
    from PyQt5.QtCore import*
    from PyQt5.QtGui import*
    ########################################################################################
     
    class MyButton1(QPushButton):
          def __init__(self,text=None,x=0,y=0,width=10,height=5):
             super().__init__()
             self.text = text
             self.x = x
             self.y = y
             self.width = width
             self.height = height
             btn = QPushButton(fen)
             btn.setText(self.text)
             btn.setGeometry(self.x,self.y,self.width,self.height)
             btn.setStyleSheet("background-color:pink; \
                                              color:Blue; \
                                        border-width:2px; \
                                      border-radius:20px; \
                                       border-color:blue; \
                                      border-style:solid; \
                                        font: bold 28px;");
     
    def copy():
        t = textbox.text()
        lbl.setText(t)
     
    if __name__=="__main__":
     
        app = QApplication(sys.argv)
        fen = QWidget()
     
        btn = MyButton1("Ouvrir", 100, 250, 250, 50)
        btn.clicked.connect(copy)
     
        textbox = QLineEdit(fen)
        textbox.setGeometry(100,100,250,40)
        textbox.setStyleSheet("background-color: ivory; \
                                           color:blue; \
                                      font: bold 25px; \
                                  border-style: solid; \
                                     border-width:1px; \
                                  border-radius: 5px; \
                                   border-color:blue; ");
        lbl = QLabel(fen)
        lbl.setGeometry(100, 150, 250, 40)
        lbl.setText("merci")
        lbl.show()
     
        fen.show()
        sys.exit(app.exec_())

  2. #2
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Salut,

    Ce bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        btn = MyButton1("Ouvrir", 100, 250, 250, 50)
        btn.clicked.connect(copy)
    n'est pas celui que tu vois, tu ne l'as pas placé dans le widget parent. Et les données de géométrie ne se rapportent à rien.

    Le bouton que tu vois dans ton widget est celui que tu crées ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             btn = QPushButton(fen)
    et celui-là n'a pas de signal connecté.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2020
    Messages : 25
    Points : 15
    Points
    15
    Par défaut reponse vincent
    Merci pour ta reponse vincent mais le bouton "ouvrir" est une instance de la classe MyButton et si tu essaies de supprimer ou modifier les dimensions tu verras bien que cela se repercute sur le graphique.
    Ce que je voulais faire etait de créer une classe qui va me donner des instances. imagine que je crée 2 instances de boutons avec cette classe et je veux connecter un seul bouton au slot.
    en faisant comme tu dis sur linstance btn "ouvrir" ca bloque et ca me donne une erreur

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2020
    Messages : 25
    Points : 15
    Points
    15
    Par défaut réponse
    Et quand je définis un bouton qui ne depend pas de ma classe la connexion au slot donne bien. Mais je ne comprends pas pourquoi quand c'est un bouton qui est une instance de ma classe la connexion ne passe pas.
    dans la définition de la classe MyButton j'ai deja déja placé sur la fenetre

  5. #5
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Le bouton que tu places dans le widget n'est pas celui que tu crois.

    Essaye ceci:
    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
     
    class MyButton1(QPushButton):
          def __init__(self, text=None, parent=None):
             super().__init__(parent)
             self.setText(text)
             self.setStyleSheet("background-color:pink; \
                                              color:Blue; \
                                        border-width:2px; \
                                      border-radius:20px; \
                                       border-color:blue; \
                                      border-style:solid; \
                                        font: bold 28px;");
     
    def copy():
        t = textbox.text()
        lbl.setText(t)
     
    if __name__=="__main__":
        app = QApplication(sys.argv)
        fen = QWidget()
        layout = QGridLayout(fen)
        textbox = QLineEdit(fen)
        layout.addWidget(textbox, 0, 0, 1, 2)
        lbl = QLabel(fen)
        layout.addWidget(lbl, 1, 0, 1, 2)
        btn = MyButton1("Ouvrir", fen)
        layout.addWidget(btn, 2, 1, 1, 1)
        btn.clicked.connect(copy)
        fen.show()
        sys.exit(app.exec_())

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2020
    Messages : 25
    Points : 15
    Points
    15
    Par défaut reponse
    Merci beaucoup ton code ci marche.

Discussions similaires

  1. [XL-2007] et XL MAC 2011 probleme de fonctionnement avec MAC
    Par vivi21 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/06/2011, 11h44
  2. Probleme flash fonctionne sous IEpas avec firefox !!!
    Par lthomas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/05/2006, 12h31
  3. Réponses: 13
    Dernier message: 10/05/2004, 17h49
  4. Réponses: 3
    Dernier message: 08/04/2004, 14h40
  5. probleme de gestion de clients avec des sockets....
    Par ludvo dans le forum Réseau
    Réponses: 6
    Dernier message: 25/09/2003, 13h37

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