Letztes Mal wurde fortgesetzt
Widgets Ich werde diese Seite grob auf Japanisch zusammenfassen.
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_())
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
Wenn Sie die roten und blauen Tasten drücken
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_())
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_())
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
Wählen Sie den 15. Juni
Nächstes Mal wird Widgets II ungefähr ausprobieren.
Recommended Posts