[GUI en Python] PyQt5-Layout management-

Dernière fois suite

Layout management Je vais résumer grossièrement ce site en japonais.

[Position absolue]

Absolute_positioning.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QWidget, QLabel, QApplication


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):
        
        #Réglage du nom d'étiquette
        lbl1 = QLabel('Zetcode', self)
        #Étiquette x=15,y=Passer à 10
        lbl1.move(15, 10)

        lbl2 = QLabel('tutorials', self)
        lbl2.move(35, 40)
        
        lbl3 = QLabel('for programmers', self)
        lbl3.move(55, 70)        
        
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Absolute')    
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
absolute.png

[Disposition de la boîte]

Box_layout.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtWidgets import (QWidget, QPushButton, 
    QHBoxLayout, QVBoxLayout, QApplication)


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):
        
        #Créer des boutons OK et Annuler
        okButton = QPushButton("OK")
        cancelButton = QPushButton("Cancel")
        
        #Créer une boîte horizontale
        hbox = QHBoxLayout()
        #Gardez la taille du bouton inchangée
        #Le bouton se déplace vers la droite car il y a un espace qui peut être agrandi et contracté horizontalement sur le côté gauche du bouton.
        hbox.addStretch(1)
        hbox.addWidget(okButton)
        hbox.addWidget(cancelButton)
        
        #Créer une boîte verticale
        vbox = QVBoxLayout()
        #Créez un espace qui peut être agrandi et contracté verticalement
        vbox.addStretch(1)
        #Le bouton se déplace vers le bas à droite
        vbox.addLayout(hbox)
        
        #Ajoutez la mise en page définie ci-dessus à l'écran
        self.setLayout(vbox)    
        
        self.setGeometry(300, 300, 300, 150)
        self.setWindowTitle('Buttons')    
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
box_layout.png

[Disposition des boutons dans un motif de grille]

QGridLayout.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtWidgets import (QWidget, QGridLayout, 
    QPushButton, QApplication)


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):
        
        #Création d'objets pour les écrans d'application
        grid = QGridLayout()
        self.setLayout(grid)
        
        #Étiquette du bouton
        names = ['Cls', 'Bck', '', 'Close',
                 '7', '8', '9', '/',
                '4', '5', '6', '*',
                 '1', '2', '3', '-',
                '0', '.', '=', '+']
        
        #Réglage de la position du bouton
        positions = [(i,j) for i in range(5) for j in range(4)]
        
        #Ajouter un bouton à l'écran
        for position, name in zip(positions, names):
            
            #Ignorer les éléments sans étiquettes de bouton
            if name == '':
                continue
            #Définir le libellé du bouton
            button = QPushButton(name)
            # *Placez le bouton à la position de la position
            grid.addWidget(button, *position)
            
        self.move(300, 150)
        self.setWindowTitle('Calculator')
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
qgrid.png

[Disposition de la zone de texte]

Review_example


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtWidgets import (QWidget, QLabel, QLineEdit, 
    QTextEdit, QGridLayout, QApplication)


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):
        
        title = QLabel('Title')
        author = QLabel('Author')
        review = QLabel('Review')

        titleEdit = QLineEdit()
        authorEdit = QLineEdit()
        reviewEdit = QTextEdit()
        
        #Créez une disposition en forme de grille pour libérer de l'espace pour chaque widget
        grid = QGridLayout()
        grid.setSpacing(10)
        
        #Positionnement des étiquettes
        grid.addWidget(title, 1, 0)
        #Réglage de la position du champ de saisie
        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, 350, 300)
        self.setWindowTitle('Review')    
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
review.png

La prochaine fois vous donnera une idée approximative des Événements et signaux.

Recommended Posts

[GUI en Python] PyQt5-Layout management-
Gestion de vidéos YouTube avec Python 3
Gestion des mots de passe avec python: trousseau de clés
[GUI avec Python] PyQt5-Préparation-
[GUI avec Python] PyQt5 -Paint-
[GUI avec Python] PyQt5 -Widget II-
[GUI avec Python] PyQt5-La première étape-
[GUI en Python] PyQt5-Glisser-déposer-
[GUI avec Python] PyQt5-Widget personnalisé-
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Installation de Python et gestion des packages avec pip
Twilio avec Python
Jouez avec 2016-Python
Testé avec Python
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Création de tableaux Excel avec Python [Table de gestion des progrès]
Construction d'interface graphique heureuse avec électron et python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
J'ai créé une application graphique avec Python + PyQt5
Outil de rognage d'image GUI réalisé avec Python + Tkinter
Automatisation de l'interface graphique avec le pilote d'application Python x Windows
Création d'un outil de vente simple avec Python GUI: création de devis
Ouvrir la boîte de dialogue de fichier avec l'interface graphique Python (tkinter.filedialog)
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Essayez de gratter avec Python.
Apprendre Python avec ChemTHEATER 03
Recherche séquentielle avec Python
"Orienté objet" appris avec python
Exécutez Python avec VBA
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Apprendre Python avec ChemTHEATER 05-1
Apprenez Python avec ChemTHEATER
1.1 Premiers pas avec Python
Binarisation avec OpenCV / Python
3. 3. Programmation IA avec Python
Méthode Kernel avec Python
Non bloquant avec Python + uWSGI
Grattage avec Python + PhantomJS
Publier des tweets avec python
Conduisez WebDriver avec python
Utiliser mecab avec Python 3
Analyse vocale par python
Pensez à yaml avec python