In this PyQt5 tutorial, I will cover how to implement QCheckBox “Select All” and “Select None” feature.





Buy Me a Coffee? Your support is much appreciated!

PayPal Me: https://www.paypal.me/jiejenn/5
Venmo: @Jie-Jen

Source Code

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QHBoxLayout, QVBoxLayout
from PyQt5.QtCore import Qt

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Select All/Select None')
        self.window_width, self.window_height = 600, 200
        self.setMinimumSize(self.window_width, self.window_height)

        layout = QVBoxLayout()
        self.setLayout(layout)

        self.checkBoxAll = QCheckBox('Select All')
        self.checkBoxAll.setChecked(False)
        self.checkBoxAll.stateChanged.connect(self.on_stateChanged)
        layout.addWidget(self.checkBoxAll)

        self.checkBoxA = QCheckBox('Select A')
        self.checkBoxB = QCheckBox('Select B')
        self.checkBoxC = QCheckBox('Select C')

        self.checkBoxes = [self.checkBoxA, self.checkBoxB, self.checkBoxC]
        for checkBox in self.checkBoxes:
            layout.addWidget(checkBox)

    def on_stateChanged(self, state):
        for checkBox in self.checkBoxes:
            checkBox.setCheckState(state)

if __name__ == '__main__':
    # don't auto scale.
    QApplication.setAttribute(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
    
    app = QApplication(sys.argv)
    app.setStyleSheet('''
        QWidget {
            font-size: 30px;
        }
    ''')
    
    myApp = MyApp()
    myApp.show()

    try:
        sys.exit(app.exec_())
    except SystemExit:
        print('Closing Window...')