QRadioButtons in meerdere groepen

Op deze pagina:

    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_2knop)       
    
            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_2knop.setText(drankkeuze)
            
    App = QApplication(sys.argv)
    window = Window()
    sys.exit = (App.exec())
    

    qradiobuttons

     

    Verwante artikelen