[GUI en Python] PyQt5 -Widget-

Dernière fois suite

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

【Case à cocher】

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_())
checkbox.png

[Bouton à bascule]

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 toggle_before.png

Lorsque vous appuyez sur les boutons rouge et bleu toggle_after.png

【glissière】

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_())

orange_slider.png yellow_slider.png green_slider.png blue_slider.png

【barre de progression】

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_())

progress_1.png  progress_2.png  progress_3.png

【calendrier】

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 calneder_1.png

Sélectionnez le 15 juin calender_2.png

La prochaine fois essaiera approximativement Widgets II.

Recommended Posts

[GUI en Python] PyQt5 -Widget-
Présentation de l'interface graphique: PyQt5 en Python
[GUI en Python] PyQt5 -Event-
[GUI avec Python] PyQt5 -Widget II-
[GUI avec Python] PyQt5-Widget personnalisé-
[GUI en Python] PyQt5-Dialog-
[GUI avec Python] PyQt5-Préparation-
[GUI avec Python] PyQt5 -Paint-
Programmation GUI en Python avec Appjar
[GUI en Python] Menu PyQt5 et barre d'outils-
Création d'interface graphique en python avec tkinter 2
Essayez de le faire avec GUI, PyQt en Python
Quadtree en Python --2
Python en optimisation
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Création d'interface graphique en python à l'aide de tkinter partie 1
Méta-analyse en Python
Unittest en Python
Créer une application GUI simple en Python
Époque en Python
Discord en Python
Créer des pièces de concepteur Qt avec Python (PyQt)
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
J'ai créé une application graphique avec Python + PyQt5
Fichier d'exécution GUI (WxPython) (pyInstaller) [Windows] dans Python3
Liste triée en Python
AtCoder # 36 quotidien avec Python