QcheckBox aanvinkkeuzes
Op deze pagina:
Een checkbox of aanvinkkeuze geeft de mogelijkheid om meerdere opties te kiezen (aan te vinken). Dit is tegenstelling tot de radioknoppen, waarbij steeds slechts één optie aan gezet kan worden. Een aanvinkkeuze is een instantie van de QCheckBox class.
De QCheckBox class geeft de volgende methoden:
- isChecked()
- geeft True als deze keuze is aangevinkt
- setTristate()
- als deze op True wordt gezet, dan kan een gebruiker deze keuze niet meer aanpassen.
- setIcon()
- om een icon bij de aanvinkkeuze te zetten.
- settext()
- om de tekst aan te passen bij de aanvinkkeuze.
- setChecked()
- als deze op True gezet wordt, dan staat deze keuze default aan bij de start.
De signalen van een checkbox:
- clicked()
- als de aanvinkbox is geklikt of als de sneltoets is gebruikt
- stateChanged()
- als de aanvinkbox aan of uit is gezet
Voorbeeld:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QLabel, QCheckBox
from PyQt5.QtGui import QFont, QIcon
from PyQt5.QtCore import QRect
class Venster(QMainWindow):
def __init__(self):
super(Venster, self).__init__()
self.initUI()
def initUI(self):
self.setWindowIcon(QIcon('icon.png'))
self.setupUi(self)
self.show()
def setupUi(self, MainWindow):
MainWindow.resize(300, 400)
font = QFont()
font.setPointSize(12)
MainWindow.setFont(font)
MainWindow.setWindowTitle("Aanvinkkeuzes")
self.centralWidget = QWidget(MainWindow)
self.centralWidget.setObjectName("centralWidget")
self.label = QLabel(self.centralWidget)
self.label.setGeometry(QRect(10, 20, 131, 21))
self.label.setText('Kies kleding:')
self.checkBox = QCheckBox(self.centralWidget)
self.checkBox.setGeometry(QRect(0, 50, 85, 21))
self.checkBox.setText('Trui')
self.checkBox.clicked.connect(self.toonkeuzes)
self.checkBox_2 = QCheckBox(self.centralWidget)
self.checkBox_2.setGeometry(QRect(0, 80, 85, 21))
self.checkBox_2.setText('Broek')
self.checkBox_2.clicked.connect(self.toonkeuzes)
self.checkBox_3 = QCheckBox(self.centralWidget)
self.checkBox_3.setGeometry(QRect(0, 110, 85, 21))
self.checkBox_3.setText('Jas')
self.checkBox_3.clicked.connect(self.toonkeuzes)
self.label_2 = QLabel(self.centralWidget)
self.label_2.setGeometry(QRect(10, 150, 131, 21))
self.label_2.setText('Kies kleur:')
self.checkBox_4 = QCheckBox(self.centralWidget)
self.checkBox_4.setGeometry(QRect(0, 180, 85, 21))
self.checkBox_4.setText('Rood')
self.checkBox_4.clicked.connect(self.toonkeuzes)
self.checkBox_5 = QCheckBox(self.centralWidget)
self.checkBox_5.setGeometry(QRect(0, 210, 85, 21))
self.checkBox_5.setText('Groen')
self.checkBox_5.clicked.connect(self.toonkeuzes)
self.checkBox_6 = QCheckBox(self.centralWidget)
self.checkBox_6.setGeometry(QRect(0, 240, 85, 21))
self.checkBox_6.setText('Blauw')
self.checkBox_6.clicked.connect(self.toonkeuzes)
self.label_3 = QLabel(self.centralWidget)
self.label_3.setGeometry(QRect(0, 310, 441, 41))
self.label_3.setText('Keuzes')
MainWindow.setCentralWidget(self.centralWidget)
def toonkeuzes(self):
keuzes = 'Keuzes: '
if self.checkBox.isChecked():
keuzes += ' Trui'
if self.checkBox_2.isChecked():
keuzes += ' Broek'
if self.checkBox_3.isChecked():
keuzes += ' Jas'
if self.checkBox_4.isChecked():
keuzes += ' Rood'
if self.checkBox_5.isChecked():
keuzes += ' Groen'
if self.checkBox_6.isChecked():
keuzes += ' Blauw'
self.label_3.setText(keuzes)
def main():
app = QApplication(sys.argv)
window = Venster()
sys.exit(app.exec_())
if __name__ == '__main__':
main()