Dernière fois suite
Layout management Je vais résumer grossièrement ce site en japonais.
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_())
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_())
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_())
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_())
La prochaine fois vous donnera une idée approximative des Événements et signaux.
Recommended Posts