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 :

Affichage d'un QGridLayout avec QMainWindow [QtGui]


Sujet :

PyQt Python

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2015
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 40
    Points : 56
    Points
    56
    Par défaut Affichage d'un QGridLayout avec QMainWindow
    Bonjour à tous,

    J'essaie d'afficher ma grille, mais j'ai un problème d'emboîtement entre QMainWindow et QWidget. Si vous arrivez à me guider pour une bonne correction de mon code, c'est super !

    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
     
    # -*- coding: utf-8 -*-
    #!/usr/bin/python3
     
    import sys
    try:
    	from PyQt5.QtWidgets import QWidget,QMainWindow, QAction, qApp,\
    	QApplication, QGridLayout, QLabel, QLineEdit, QTextEdit
    	from PyQt5.QtGui import QIcon
    except ImportError:
    	raise "Erreur lors de l'importation de PyQt5"
     
     
    class SetupUI(QMainWindow):
    	def __init__(self):
    		super().__init__()
    		self.initUI()
     
    	def initUI(self):
    		self.setupCGToolBar()
     
    		title = QLabel('Title')
    		author = QLabel('Author')
    		review = QLabel('Review')
     
    		titleEdit = QLineEdit()
    		authorEdit = QLineEdit()
    		reviewEdit = QTextEdit()
     
    		grid = QGridLayout()
    		grid.setSpacing(10)
     
    		grid.addWidget(title, 1, 0)
    		grid.addWidget(titleEdit, 1, 1)
    		grid.addWidget(author, 2, 0)
    		grid.addWidget(authorEdit, 2, 1)
    		grid.addWidget(review, 3, 0)
    		grid.addWidget(reviewEdit, 3, 1, 5, 1)
     
    		self.setLayout(grid)
     
    		self.setGeometry(300, 300, 300, 220)
    		self.setWindowTitle("Formulaire ICF")
     
    		self.show()
     
    	# ToolBar	
    	def setupCGToolBar(self):
    		self.cg = self.addToolBar('CG')
    		self.cg.addAction('Conditions générales d\'utilisations')
    	def showCG(self):
    		QMessageBox.question(self, 'Message', 'Show my message', QMessageBox.Yes)
    	# /Toolbar
     
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        ex = SetupUI()
        sys.exit(app.exec_())
    Meilleures salutations !

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

    Le problème est l'utilisation de QGridLayout qui est différente avec un QMainWindow.

    Correction:

    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
    ...
            self.setCentralWidget(QFrame())
     
            grid = QGridLayout()
            grid.setSpacing(10)
     
            grid.addWidget(title, 1, 0)
            grid.addWidget(titleEdit, 1, 1)
            grid.addWidget(author, 2, 0)
            grid.addWidget(authorEdit, 2, 1)
            grid.addWidget(review, 3, 0)
            grid.addWidget(reviewEdit, 3, 1, 5, 1)
     
            self.centralWidget().setLayout(grid)
            ...
    QFrame est à importer avec PyQt5.QtWidgets.
    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 .NET
    Inscrit en
    Juillet 2015
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 40
    Points : 56
    Points
    56
    Par défaut
    Je te remercie, ça fonctionne

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

Discussions similaires

  1. [debutant] affichage ds un JtextArea avec classes independan
    Par tony_big_guy dans le forum Composants
    Réponses: 3
    Dernier message: 27/11/2005, 23h04
  2. Réponses: 15
    Dernier message: 15/11/2005, 17h33
  3. [GD] Problème d'affichage d'une image avec gd2
    Par turini dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h59
  4. Pb Affichage de la console avec perl2exe
    Par panaone dans le forum Langage
    Réponses: 3
    Dernier message: 22/08/2005, 18h02
  5. Affichage pourri sur DEBIAN avec ATI RADEON 7000
    Par jibouze dans le forum Matériel
    Réponses: 2
    Dernier message: 07/04/2005, 00h49

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