Dernière fois suite
Widgets Je vais résumer grossièrement ce site en japonais.
QCheckBox.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QWidget, QCheckBox, QApplication
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#Création d'une boîte de mandrin
cb = QCheckBox('Show title', self)
cb.move(20, 20)
#Cochez la case
cb.toggle()
#Changer le titre en fonction de l'état de la vérification
cb.stateChanged.connect(self.changeTitle)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QCheckBox')
self.show()
def changeTitle(self, state):
#Quand le mandrin est en
if state == Qt.Checked:
self.setWindowTitle('QCheckBox')
#Lorsque le mandrin n'est pas inséré
else:
#Il semble que le titre sera python si vous ne spécifiez aucun argument
self.setWindowTitle('')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
Toggle_button.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import (QWidget, QPushButton,
QFrame, QApplication)
from PyQt5.QtGui import QColor
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#Réglage initial de la couleur (le rendre noir)
self.col = QColor(0, 0, 0)
#Créer un bouton bascule
redb = QPushButton('Red', self)
redb.setCheckable(True)
redb.move(10, 10)
#Appelez la fonction setColor lorsque vous cliquez dessus
redb.clicked[bool].connect(self.setColor)
redb = QPushButton('Green', self)
redb.setCheckable(True)
redb.move(10, 60)
redb.clicked[bool].connect(self.setColor)
blueb = QPushButton('Blue', self)
blueb.setCheckable(True)
blueb.move(10, 110)
blueb.clicked[bool].connect(self.setColor)
self.square = QFrame(self)
self.square.setGeometry(150, 20, 100, 100)
self.square.setStyleSheet("QWidget { background-color: %s }" %
self.col.name())
self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('Toggle button')
self.show()
def setColor(self, pressed):
#Attribuer le bouton enfoncé à la variable source
source = self.sender()
#Définissez la couleur lorsque vous cliquez sur le bouton
if pressed:
val = 255
else: val = 0
#Lorsque le bouton rouge est enfoncé, mélangez le rouge avec la couleur
if source.text() == "Red":
self.col.setRed(val)
#Lorsque le bouton vert est enfoncé, mélangez le vert avec la couleur
elif source.text() == "Green":
self.col.setGreen(val)
#Lorsque le bouton bleu est enfoncé, mélangez le bleu avec la couleur
else:
self.col.setBlue(val)
#Changer de couleur
self.square.setStyleSheet("QFrame { background-color: %s }" %
self.col.name())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
Etat initial
Lorsque vous appuyez sur les boutons rouge et bleu
QSlider.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import (QWidget, QSlider,
QLabel, QApplication)
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#Créer un curseur horizontal
sld = QSlider(Qt.Horizontal, self)
#Empêcher la mise au point du curseur
sld.setFocusPolicy(Qt.NoFocus)
sld.setGeometry(30, 40, 100, 30)
#La fonction changeValue est appelée lorsque le curseur se déplace
sld.valueChanged[int].connect(self.changeValue)
#Création d'étiquettes
self.label = QLabel(self)
#Paramètre d'image initial pour l'étiquette
self.label.setPixmap(QPixmap('orange.png'))
self.label.setGeometry(160, 40, 80, 30)
self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('QSlider')
self.show()
def changeValue(self, value):
#Changer l'image en fonction de la position du curseur
if value == 0:
#Image orange
self.label.setPixmap(QPixmap('orange.png'))
elif value > 0 and value <= 30:
#Image jaune
self.label.setPixmap(QPixmap('yellow.png'))
elif value > 30 and value < 80:
#Image verte
self.label.setPixmap(QPixmap('green.png'))
else:
#Image bleue
self.label.setPixmap(QPixmap('blue.png'))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
QProgressBar.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import (QWidget, QProgressBar,
QPushButton, QApplication)
from PyQt5.QtCore import QBasicTimer
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#Créer une barre de progression
self.pbar = QProgressBar(self)
self.pbar.setGeometry(30, 40, 200, 25)
self.btn = QPushButton('Start', self)
self.btn.move(40, 80)
self.btn.clicked.connect(self.doAction)
#Création d'un objet minuterie pour déplacer la barre de progression
self.timer = QBasicTimer()
#Où commencer la barre de progression
self.step = 0
self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('QProgressBar')
self.show()
#Gestionnaire d'événements de temps
def timerEvent(self, e):
#100 barres de progression%Lorsque cela se produit, arrêtez la minuterie et définissez le libellé du bouton sur Terminé.
if self.step >= 100:
self.timer.stop()
self.btn.setText('Finished')
return
# 1%Augmentez le nombre petit à petit
self.step = self.step + 1
self.pbar.setValue(self.step)
#Que se passe-t-il lorsque l'utilisateur clique sur le bouton
def doAction(self):
if self.timer.isActive():
self.timer.stop()
self.btn.setText('Start')
else:
#Le premier argument de start spécifie la vitesse à laquelle la barre avance
self.timer.start(100, self)
self.btn.setText('Stop')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
QCalendarWidget.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import (QWidget, QCalendarWidget,
QLabel, QApplication)
from PyQt5.QtCore import QDate
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#Créer un widget de calendrier
cal = QCalendarWidget(self)
cal.setGridVisible(True)
cal.move(20, 20)
#Appelez la fonction showDate quand une date est cliquée
cal.clicked[QDate].connect(self.showDate)
self.lbl = QLabel(self)
#Remplacer la date du jour
date = cal.selectedDate()
#Créer le texte de l'étiquette de date du jour
self.lbl.setText(date.toString())
#Déplacez le texte de l'étiquette à un endroit où il est facile à voir
self.lbl.move(430, 320)
self.setGeometry(300, 300, 350, 300)
self.setWindowTitle('Calendar')
self.show()
def showDate(self, date):
#Définissez la date du clic dans le texte de l'étiquette
self.lbl.setText(date.toString())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
Etat initial
Sélectionnez le 15 juin
La prochaine fois essaiera approximativement Widgets II.
Recommended Posts