目錄
1 -> 概述
2 -> 核心特性
2.1 -> 狀態管理
2.2 -> 信號機制
2.3 -> 外觀與文本
3 -> 應用場景
4 -> 代碼示例
5 -> 總結
1 -> 概述
QCheckBox 是 Qt 框架中提供的一個基礎控件,用于實現復選框功能。它允許用戶在兩種或三種狀態之間進行選擇,是圖形用戶界面中常見的交互元素之一。作為 QAbstractButton 的子類,QCheckBox 繼承了按鈕的基本特性,同時提供了專門用于多選場景的功能。
2 -> 核心特性
2.1 -> 狀態管理
QCheckBox 最顯著的特點是支持三種狀態:
-
選中狀態(Checked)
-
未選中狀態(Unchecked)
-
部分選中狀態(Partially checked)
部分選中狀態常用于表示 "不確定" 或 "部分選擇" 的場景,比如當一組選項只有部分被選中時,父級復選框可以顯示為部分選中狀態。
2.2 -> 信號機制
QCheckBox 提供了兩種主要的信號:
-
stateChanged(int state):當復選框狀態改變時發出,攜帶具體的狀態值
-
toggled(bool checked):狀態改變時發出,提供布爾值表示是否選中
這兩種信號讓開發者可以根據需要選擇不同粒度的狀態監聽方式。
2.3 -> 外觀與文本
QCheckBox 支持顯示文本標簽,通常位于復選框的右側。通過 setText() 方法可以設置顯示文字,同時支持 HTML 格式的富文本顯示,允許基本的文本格式化。
3 -> 應用場景
1. 設置選項
最常見的應用是在設置對話框或偏好設置中,讓用戶啟用或禁用特定功能。多個 QCheckBox 可以組合使用,允許用戶同時選擇多個互不排斥的選項。
2. 條件同意
在注冊表單或安裝程序中,常用于"我已閱讀并同意條款"這類需要用戶明確同意的場景。
3. 樹形結構選擇
在具有層次結構的數據選擇中,QCheckBox 的三態特性非常有用。父節點的部分選中狀態可以直觀表示子節點只有部分被選中。
4. 篩選器界面
在數據篩選或搜索界面中,QCheckBox 常用于讓用戶選擇多個篩選條件,這些條件可以同時生效。
4 -> 代碼示例
獲取復選按鈕的取值
1. 在界面上創建三個復選按鈕,和一個普通按鈕
objectName 分別為?checkBox_beans、checkBox_dine、checkBox_sleep 和?pushButton
2. 給?pushButton 添加 slot 函數
void Widget::on_pushButton_clicked()
{QString result = "今天準備做什么: ";if (ui->checkBox_dine->isChecked()){result += ui->checkBox_dine->text() + " ";}if (ui->checkBox_sleep->isChecked()){result += ui->checkBox_sleep->text() + " ";}if (ui->checkBox_beans->isChecked()){result += ui->checkBox_beans->text() + " ";}ui->label->setText(result);
}
3. 運行程序,可以看到點擊確認按鈕時,就會在控制臺中輸出選中的內容
5 -> 總結
QCheckBox 是 Qt 中功能豐富且靈活的控件,通過其雙態或三態的選擇機制,為用戶提供了直觀的選項設置方式。合理使用 QCheckBox 可以創建出符合用戶直覺的交互界面,特別是在需要多選的場景中表現出色。掌握 QCheckBox 的特性和應用場景,有助于開發出更加用戶友好的 Qt 應用程序。
感謝各位大佬支持!!!
互三啦!!!