web2 logo

QRadioButtons in meerdere groepen

Er mag steeds slechts één keuze tegelijk geselecteerd zijn bij radioknoppen. Als je meerdere groepen radioknoppen in één venster wil gebruiken, dan moeten er meerdere radioknoppen geselecteerd kunnen worden, één radioknop per groep. Dit kan gedaan worden door de radioknoppen te groeperen in layouts.
Hier een voorbeeld:
#!/usr/bin/python3 # -*- coding: utf-8 -*- ''' QRadioButton2 ''' from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QMainWindow from PyQt5.QtWidgets import QWidget, QVBoxLayout, QRadioButton, QLabel from PyQt5.QtCore import QRect import sys class Window(QMainWindow): def __init__(self): super().__init__() self.resize(300, 400) self.move(100, 100) self.centralWidget = QWidget(self) # vbox bevat de eerste 3 radioknoppen self.vboxWidget = QWidget(self.centralWidget) self.vboxWidget.setGeometry(QRect(0, 0, 340, 130)) self.vbox = QVBoxLayout(self.vboxWidget) self.vbox.setContentsMargins(10, 10, 10, 10) self.vbox.setSpacing(6) self.knop = QRadioButton(self.vboxWidget) self.knop.setText("Rood") self.vbox.addWidget(self.knop) self.knop.toggled.connect(self.toonkleur) self.knop_2 = QRadioButton(self.vboxWidget) self.knop_2.setText("Wit") self.vbox.addWidget(self.knop_2) self.knop_2.toggled.connect(self.toonkleur) self.knop_3 = QRadioButton(self.vboxWidget) self.knop_3.setText("Blauw") self.vbox.addWidget(self.knop_3) self.knop_3.toggled.connect(self.toonkleur) # vbox_2 bevat de 2e set radioknoppen self.vboxWidget_2 = QWidget(self.centralWidget) self.vboxWidget_2.setGeometry(QRect(0, 190, 340, 130)) self.vbox_2 = QVBoxLayout(self.vboxWidget_2) self.vbox_2.setContentsMargins(10, 10, 10, 10) self.vbox_2.setSpacing(6) self.knop_4 = QRadioButton(self.vboxWidget_2) self.knop_4.setText("Koffie") self.vbox_2.addWidget(self.knop_4) self.knop_4.toggled.connect(self.toondrank) self.knop_5 = QRadioButton(self.vboxWidget_2) self.knop_5.setText("Thee") self.vbox_2.addWidget(self.knop_5) self.knop_5.toggled.connect(self.toondrank) self.knop_6 = QRadioButton(self.vboxWidget_2) self.knop_6.setText("Cola") self.vbox_2.addWidget(self.knop_6) self.knop_6.toggled.connect(self.toondrank) # vbox_3 bevat het eerste label self.vboxWidget_3 = QWidget(self.centralWidget) self.vboxWidget_3.setGeometry(QRect(0, 120, 340, 60)) self.vbox_3 = QVBoxLayout(self.vboxWidget_3) self.vbox_3.setContentsMargins(10, 10, 10, 10) self.vbox_3.setSpacing(6) self.label = QLabel(self.vboxWidget_3) self.label.setText("Selecteer een kleur") self.vbox_3.addWidget(self.label) # vbox_4 bevat het tweede label self.vboxWidget_4 = QWidget(self.centralWidget) self.vboxWidget_4.setGeometry(QRect(0, 300, 340, 80)) self.vbox_4 = QVBoxLayout(self.vboxWidget_4) self.vbox_4.setContentsMargins(10, 10, 10, 10) self.vbox_4.setSpacing(6) self.label_2 = QLabel(self.vboxWidget_4) self.label_2.setText("Selecteer een drank") self.vbox_4.addWidget(self.label_2) self.setCentralWidget(self.centralWidget) self.show() def toonkleur(self): kleur = '' if self.knop.isChecked() == True: kleur = 'Rood' if self.knop_2.isChecked() == True: kleur = 'Wit' if self.knop_3.isChecked() == True: kleur = 'Blauw' kleurkeuze = 'De geselecteerde kleur is: ' + kleur self.label.setText(kleurkeuze) def toondrank(self): drank = '' if self.knop_4.isChecked() == True: drank = 'Koffie' if self.knop_5.isChecked() == True: drank = 'Thee' if self.knop_6.isChecked() == True: drank = 'Cola' drankkeuze = 'De geselecteerde drank is: ' + drank self.label_2.setText(drankkeuze) App = QApplication(sys.argv) window = Window() sys.exit = (App.exec())

qradiobuttons

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

~ pyqt ~

~ Onderwerpen ~

Dit is een website zonder pop-ups

~ Links ~

Design & Development by Cyberwebdesign.nl for web2.nl © 2020.