PyQt5 教程 - 多選按鈕

Jinku Hu 2023年1月30日
  1. CheckBox 示例
  2. CheckBox 事件
PyQt5 教程 - 多選按鈕

在本教程中,我們將學習 PyQt5 中的 QCheckBoxQCheckBox 是一個可以選中或取消選中的選項按鈕。使用者可以從核取方塊組中選中多個選項。

CheckBox 示例

import sys
from PyQt5.QtWidgets import QWidget, QLabel, QHBoxLayout, QCheckBox, QApplication


class basicWindow(QWidget):
    def __init__(self):
        super().__init__()

        layout = QHBoxLayout()
        self.setLayout(layout)

        self.checkBoxA = QCheckBox("Select This.")
        self.labelA = QLabel("Not slected.")

        layout.addWidget(self.checkBoxA)
        layout.addWidget(self.labelA)

        self.setGeometry(200, 200, 300, 200)

        self.setWindowTitle("CheckBox Example")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    windowExample = basicWindow()
    windowExample.show()
    sys.exit(app.exec_())

這裡,

self.checkBoxA = QCheckBox("Select This.")

self.checkBoxA 是 PyQt5 中 QCheckBox 控制元件的一個例項。給出的文字 - Select This. 將顯示在 CheckBox 空心方塊旁邊。

PyQt5 CheckBox 示例

CheckBox 事件

使用者行為一般為選中或取消選中核取方塊,然後應該根據狀態更改訊號執行操作。

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


class basicWindow(QWidget):
    def __init__(self):
        super().__init__()

        layout = QHBoxLayout()
        self.setLayout(layout)

        self.checkBoxA = QCheckBox("Select This.")
        self.labelA = QLabel("Not slected.")

        self.checkBoxA.stateChanged.connect(self.checkBoxChangedAction)

        layout.addWidget(self.checkBoxA)
        layout.addWidget(self.labelA)

        self.setGeometry(200, 200, 300, 200)

        self.setWindowTitle("CheckBox Example")

    def checkBoxChangedAction(self, state):
        if QtCore.Qt.Checked == state:
            self.labelA.setText("Selected.")
        else:
            self.labelA.setText("Not Selected.")


if __name__ == "__main__":
    app = QApplication(sys.argv)
    windowExample = basicWindow()
    windowExample.show()
    sys.exit(app.exec_())
self.checkBoxA.stateChanged.connect(self.checkBoxChangedAction)

我們將 slot 方法 checkBoxChangeAction() 連線到 CheckBox stateChanged 訊號。每次使用者選中或取消選中核取方塊時,它都會呼叫 checkBoxChangeAction()

def checkBoxChangedAction(self, state):
    if QtCore.Qt.Checked == state:
        self.labelA.setText("Selected.")
    else:
        self.labelA.setText("Not Selected.")

state 引數是 CheckBox 傳遞的狀態,如果選中核取方塊的話,labelA 文字將變為 Selected.,而沒選中的話,會顯示 Not Selected

PyQt5 CheckBox 事件

作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 創辦人。Jinku 在機器人和汽車行業工作了8多年。他在自動測試、遠端測試及從耐久性測試中創建報告時磨練了自己的程式設計技能。他擁有電氣/ 電子工程背景,但他也擴展了自己的興趣到嵌入式電子、嵌入式程式設計以及前端和後端程式設計。

LinkedIn Facebook