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 :

GridLayout invisible ou n'affiche rien ? [QtGui]


Sujet :

PyQt Python

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2016
    Messages : 61
    Points : 42
    Points
    42
    Par défaut GridLayout invisible ou n'affiche rien ?
    Hello,

    Mon QGridLayout s'affiche pas Aucune erreur, juste pas de visibilité:

    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
     
    #!/usr/bin/env python
    import sys
     
    from PyQt5.QtCore import Qt
    from PyQt5.QtWidgets import (QMainWindow, QApplication, QDesktopWidget, 
        qApp, QAction, QListView, QGridLayout, QPushButton)
     
    class TerraSoft(QMainWindow):
        def __init__(self):
            super().__init__()
     
            self.initUI()
     
        def initUI(self):
            self.showMaximized()
            self.setWindowTitle('TerraSoft')
     
            grid = QGridLayout(self)
            self.setLayout(grid)
     
            button = QPushButton("Hello")
            grid.addWidget(button, 0, 0)
     
            self.statusBar().showMessage('Bienvenue dans TerraSoft') 
            self.show()
     
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        ex = TerraSoft()
        sys.exit(app.exec_())
    L'idée final étant d'afficher sur la gauche une listView et sur la droite différentes données organisées....

    Cordialement,
    Cordialement,

    yagaam

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    QGridLayout ne s'affiche pas: il ne fait que positionner des widgets dans un autre.

    Ainsi, ton code ne marche pas pour 2 raisons:
    - il faut définir les widgets à positionner AVANT d'utiliser QGridLayout
    - même avec cette correction, le code conviendrait à un QWidget, mais pas à un QMainWindow qui utilise le QGridLayout autrement.

    Voilà ton code corrigé:

    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
    #!/usr/bin/env python
    import sys
     
    from PyQt5.QtCore import Qt
    from PyQt5.QtWidgets import (QMainWindow, QApplication, QDesktopWidget, 
        qApp, QAction, QListView, QGridLayout, QPushButton, QFrame)
     
    class TerraSoft(QMainWindow):
        def __init__(self):
            super().__init__()
     
            self.initUI()
     
        def initUI(self):
            self.showMaximized()
            self.setWindowTitle('TerraSoft')
     
            self.button = QPushButton("Hello", self)
     
            self.setCentralWidget(QFrame())
            grid = QGridLayout(self)
            grid.addWidget(self.button, 0, 0)
            self.centralWidget().setLayout(grid)
     
            self.statusBar().showMessage('Bienvenue dans TerraSoft') 
            self.show()
     
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        ex = TerraSoft()
        sys.exit(app.exec_())
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2016
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    Ah merci à toi !
    Cordialement,

    yagaam

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boot mais n'affiche rien
    Par log2n dans le forum Assembleur
    Réponses: 28
    Dernier message: 03/11/2005, 21h16
  2. Mon programme n'affiche rien!!!!
    Par matthieu5978 dans le forum Langage
    Réponses: 1
    Dernier message: 03/11/2005, 11h28
  3. pourquoi mon quickreport n'affiche rien ?
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 8
    Dernier message: 31/07/2005, 00h59
  4. [LG]Programme qui n'affiche rien
    Par ousunas dans le forum Langage
    Réponses: 4
    Dernier message: 17/02/2004, 19h38
  5. Opengl n'affiche rien.
    Par Fugus02 dans le forum OpenGL
    Réponses: 4
    Dernier message: 06/01/2004, 15h41

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