[GUI in Python] PyQt5 -Widget-

Letztes Mal wurde fortgesetzt

Widgets Ich werde diese Seite grob auf Japanisch zusammenfassen.

【Kontrollkästchen】

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):      

        #Chuck Box Kreation
        cb = QCheckBox('Show title', self)
        cb.move(20, 20)
        #Aktivieren Sie das Kontrollkästchen
        cb.toggle()
        #Ändern Sie den Titel abhängig vom Prüfstatus
        cb.stateChanged.connect(self.changeTitle)
        
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('QCheckBox')
        self.show()
        
        
    def changeTitle(self, state):
      
        #Wenn das Spannfutter drin ist
        if state == Qt.Checked:
            self.setWindowTitle('QCheckBox')
        #Wenn das Spannfutter nicht eingesetzt ist
        else:
            #Es scheint, dass der Titel Python ist, wenn Sie kein Argument angeben
            self.setWindowTitle('')
            
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
checkbox.png

[Umschaltknopf]

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):      

        #Anfängliche Farbeinstellung (schwarz machen)
        self.col = QColor(0, 0, 0)       

        #Erstellen einer Umschalttaste
        redb = QPushButton('Red', self)
        redb.setCheckable(True)
        redb.move(10, 10)

        #Rufen Sie die Funktion setColor auf, wenn Sie darauf klicken
        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):
        
        #Weisen Sie die gedrückte Taste der Quellvariablen zu
        source = self.sender()      
        
        #Stellen Sie die Farbe ein, wenn Sie auf die Schaltfläche klicken
        if pressed:
            val = 255
        else: val = 0
        
        #Wenn die rote Taste gedrückt wird, mischen Sie Rot mit der Farbe
        if source.text() == "Red":
            self.col.setRed(val)    
        #Wenn die grüne Taste gedrückt wird, mischen Sie Grün mit der Farbe
        elif source.text() == "Green":
            self.col.setGreen(val)   
        #Wenn die blaue Taste gedrückt wird, mischen Sie Blau mit der Farbe
        else:
            self.col.setBlue(val) 
        
        #Farbe ändern
        self.square.setStyleSheet("QFrame { background-color: %s }" %
            self.col.name())  
       
       
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

Ausgangszustand toggle_before.png

Wenn Sie die roten und blauen Tasten drücken toggle_after.png

【Schieberegler】

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):      

        #Erstellen Sie einen horizontalen Schieberegler
        sld = QSlider(Qt.Horizontal, self)
        #Verhindern Sie, dass der Schieberegler fokussiert wird
        sld.setFocusPolicy(Qt.NoFocus)
        sld.setGeometry(30, 40, 100, 30)
        #Die Funktion changeValue wird aufgerufen, wenn sich der Schieberegler bewegt
        sld.valueChanged[int].connect(self.changeValue)
        
        #Etikettenerstellung
        self.label = QLabel(self)
        #Anfängliche Bildeinstellung für das Etikett
        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):

        #Ändern Sie das Bild abhängig von der Position des Schiebereglers
        if value == 0:
            #Orange Bild
            self.label.setPixmap(QPixmap('orange.png'))
        elif value > 0 and value <= 30:
            #Gelbes Bild
            self.label.setPixmap(QPixmap('yellow.png'))
        elif value > 30 and value < 80:
            #Grünes Bild
            self.label.setPixmap(QPixmap('green.png'))
        else:
            #Blaues Bild
            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

【Fortschrittsanzeige】

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):      

        #Erstellen eines Fortschrittsbalkens
        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)

        #Erstellen eines Timer-Objekts zum Verschieben des Fortschrittsbalkens
        self.timer = QBasicTimer()
        #Wo soll der Fortschrittsbalken gestartet werden?
        self.step = 0
        
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('QProgressBar')
        self.show()
        
    
    #Zeitereignishandler
    def timerEvent(self, e):
      
        #100 Fortschrittsbalken%Stoppen Sie in diesem Fall den Timer und setzen Sie die Tastenbeschriftung auf Fertig.
        if self.step >= 100:
            self.timer.stop()
            self.btn.setText('Finished')
            return
            
        # 1%Erhöhen Sie die Anzahl nach und nach
        self.step = self.step + 1
        self.pbar.setValue(self.step)
        
    #Was passiert, wenn auf die Schaltfläche geklickt wird?
    def doAction(self):
      
        if self.timer.isActive():
            self.timer.stop()
            self.btn.setText('Start')
        else:
            #Das erste Startargument gibt die Geschwindigkeit an, mit der der Balken vorrückt
            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

【Kalender】

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):      

        #Erstellen eines Kalender-Widgets
        cal = QCalendarWidget(self)
        cal.setGridVisible(True)
        cal.move(20, 20)
        #Rufen Sie die Funktion showDate auf, wenn Sie auf ein Datum klicken
        cal.clicked[QDate].connect(self.showDate)
        
        self.lbl = QLabel(self)
        #Ersetzen Sie das heutige Datum
        date = cal.selectedDate()
        #Machen Sie den heutigen Datumsbeschriftungstext
        self.lbl.setText(date.toString())
        #Bewegen Sie den Beschriftungstext an eine Stelle, an der er leicht zu erkennen ist
        self.lbl.move(430, 320)
        
        self.setGeometry(300, 300, 350, 300)
        self.setWindowTitle('Calendar')
        self.show()
        
        
    def showDate(self, date):     
        
        #Stellen Sie das angeklickte Datum im Beschriftungstext ein
        self.lbl.setText(date.toString())
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

Ausgangszustand calneder_1.png

Wählen Sie den 15. Juni calender_2.png

Nächstes Mal wird Widgets II ungefähr ausprobieren.

Recommended Posts

[GUI in Python] PyQt5 -Widget-
Einführung in die GUI: PyQt5 in Python
[GUI in Python] PyQt5 -Event-
[GUI mit Python] PyQt5 -Widget II-
[GUI mit Python] PyQt5 -Custom Widget-
[GUI in Python] PyQt5-Dialog-
[GUI mit Python] PyQt5-Vorbereitung-
[GUI mit Python] PyQt5 -Paint-
GUI-Programmierung in Python mit Appjar
[GUI in Python] PyQt5-Menü und Symbolleiste-
GUI-Erstellung in Python mit tkinter 2
Versuchen Sie es mit GUI, PyQt in Python
Quadtree in Python --2
Python in der Optimierung
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
GUI-Erstellung in Python mit tkinter Teil 1
Metaanalyse in Python
Unittest in Python
Erstellen Sie eine einfache GUI-App in Python
Epoche in Python
Zwietracht in Python
Erstellen Sie Qt-Designerteile mit Python (PyQt)
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Ich habe eine GUI-App mit Python + PyQt5 erstellt
GUI (WxPython) Ausführungsdatei (pyInstaller) [Windows] in Python3
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python