- PyQt 教程
- PyQt - 首頁
- PyQt - 簡介
- PyQt - 環境配置
- PyQt - Hello World
- PyQt - 主要類
- PyQt - 使用 Qt Designer
- PyQt - 元物件
- PyQt 訊號與槽
- PyQt - 訊號和槽
- PyQt - 支援和訊號
- PyQt - 未繫結和已繫結訊號
- PyQt - 使用 PyQtSignal 建立新訊號
- PyQt - 連線、斷開和發射訊號
- PyQt - 槽裝飾器
- PyQt - 槽連線
- PyQt 佈局
- PyQt - 佈局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基本控制元件
- PyQt - 基本控制元件
- PyQt - QLabel 控制元件
- PyQt - QLineEdit 控制元件
- PyQt - QPushButton 控制元件
- PyQt - QRadioButton 控制元件
- PyQt - QCheckBox 控制元件
- PyQt - QComboBox 控制元件
- PyQt - QSpinBox 控制元件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控制元件
- PyQt - QFontComboBox 控制元件
- PyQt - QDoubleSpinBox 控制元件
- PyQt - QToolBox 控制元件
- PyQt - QDialog 類
- PyQt - QMessageBox
- PyQt - 多文件介面
- PyQt - 拖放
- PyQt 繪圖 API
- PyQt - 繪圖 API
- PyQt 資料庫
- PyQt - 資料庫處理
- PyQt 核心知識
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 類
- PyQt 有用資源
- PyQt - 快速指南
- PyQt - 有用資源
- PyQt - 討論
PyQt - QCheckBox 控制元件
QCheckBox 控制元件是一個使用者介面元素,允許使用者在兩種狀態之間切換:選中和未選中。它通常用於表單、首選項設定以及任何向用戶呈現二元選擇的場景。
當一個 QCheckBox 物件新增到父視窗時,文字標籤前面會出現一個矩形框。與 QRadioButton 一樣,它也是一個可選按鈕。它的常用場景是當用戶被要求從可用選項中選擇一個或多個選項。
與單選按鈕不同,複選框預設情況下不是互斥的。為了將選擇限制在可用專案中的一個,必須將複選框新增到 QButtonGroup 中。
QCheckBox 控制元件的基本屬性
- 文字 - 複選框旁邊顯示的文字。
- 選中狀態 - 複選框的初始狀態(選中或未選中)。
- 三態 - 允許使用附加狀態,通常用於“不確定”狀態。
- 啟用 - 確定複選框是否可互動。
QCheckBox 控制元件中使用的方法
下表列出了常用的 QCheckBox 類方法:
| 序號 | 方法及描述 |
|---|---|
| 1 |
setChecked() 更改複選框按鈕的狀態 |
| 2 |
setText() 設定與按鈕關聯的標籤 |
| 3 |
text() 檢索按鈕的標題 |
| 4 |
isChecked() 檢查按鈕是否被選中 |
| 5 |
setTriState() 為複選框提供無變化狀態 |
每次選中或清除複選框時,物件都會發出 stateChanged() 訊號。
示例 1:基本複選框
在這個例子中,我們建立一個簡單的視窗,其中包含一個標記為“啟用功能”的複選框。複選框最初處於選中狀態 (setChecked(True))。當複選框狀態更改時,它會呼叫 checkbox_state_changed 方法,該方法會列印該功能是啟用還是停用。
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QCheckBox
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
checkbox = QCheckBox('Enable Feature', self)
checkbox.setChecked(True)
checkbox.stateChanged.connect(self.checkbox_state_changed)
self.setCentralWidget(checkbox)
def checkbox_state_changed(self, state):
if state == 2:
print("Feature enabled!")
else:
print("Feature disabled!")
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
輸出
以上程式碼產生以下輸出:
示例 2:動態建立複選框
在這裡,我們使用 QVBoxLayout 動態建立五個標記為“選項 0”到“選項 4”的複選框。每個複選框都連線到 checkbox_state_changed 方法,該方法會在其狀態更改時列印複選框是否被選中。
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QCheckBox, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
central_widget = QWidget()
layout = QVBoxLayout()
for i in range(5):
checkbox = QCheckBox(f'Option {i}', self)
layout.addWidget(checkbox)
checkbox.stateChanged.connect(self.checkbox_state_changed)
central_widget.setLayout(layout)
self.setCentralWidget(central_widget)
def checkbox_state_changed(self, state):
checkbox = self.sender()
print(f"{checkbox.text()} is {'checked' if state == 2 else 'unchecked'}")
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
輸出
執行上述程式碼後,我們將得到以下結果:
廣告