【Qt開發】按鈕類控件(三)-> QCheckBox

目錄

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 應用程序。


感謝各位大佬支持!!!

互三啦!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921672.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921672.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921672.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在新發布的AI論文中 pytorch 和tensorflow 的使用比例

根據 2025 年最新的學術動態和行業報告,PyTorch 在 AI 論文中的使用比例已占據絕對主導地位,而 TensorFlow 的占比持續下降。以下是基于多個權威來源的綜合分析: 一、頂級會議中的框架分布 在 NeurIPS、ICML、CVPR 等頂級學術會議中&#xff…

3DXML格式是什么?用什么軟件可以打開?

3DXML 是一種開放標準的數據交換格式,主要用于三維 CAD(計算機輔助設計)模型的存儲和交換。它是由 Dassault Systmes 開發的一種文件格式,常用于 CATIA V6 和其他支持該格式的應用程序中。3DXML 文件可以包含完整的 3D 模型數據&a…

9月8日星期一今日早報簡報微語報早讀

9月8日星期一,農歷七月十七,早報#微語早讀。1、中國火箭與月亮同框,遙感四十號03組衛星發射成功;2、湖南郴州開發區改革:編制數由815名減至680名,精簡16.6%;3、水利部對廣東、廣西啟動洪水防御Ⅳ…

windows系統搭建MQTT服務器

1、MQTT 協議 MQTT協議:實現MQTT協議需要客戶端和服務器端通訊完成。 三種身份: 發布者(Publish)、代理(Broker)(服務器)、訂閱者(Subscribe)。 消息的發布者和訂閱者都是客戶端,消息代理是服務器,消息發布者可以同時是訂閱者。 MQTT&am…

從 GPT 到 LLaMA:解密 LLM 的核心架構——Decoder-Only 模型

🔥從 GPT 到 LLaMA:解密 LLM 的核心架構——Decoder-Only 模型 “為什么所有大模型(LLM)都長一個樣?” 因為它們都有一個共同的“基因”——Decoder-Only 架構。 在前面兩節中,我們學習了: BER…

Codeforces Round 1047 (Div. 3)

由于最近這三天的數學建模,讓我這個精力本來就不多的AI手更加力竭了,沒注意到昨晚的cf,所以今天來補題了。 比賽連接:比賽傳送門 A題: You are doing a research paper on the famous Collatz Conjecture. In your e…

C++經典的數據結構與算法之經典算法思想:貪心算法(Greedy)

貪心算法(Greedy Algorithm):通過局部最優達成全局最優的決策策略 貪心算法是一種通過每次選擇局部最優解來期望全局最優解的算法思想。它不考慮未來的影響,僅根據當前信息做出最優選擇,適用于具有貪心選擇性質和最優子…

LangChain實戰(二十一):構建自動化AI客服系統

本文是《LangChain實戰課》系列的第二十一篇,將帶領您構建一個完整的自動化AI客服系統。通過結合對話記憶、工具調用和業務知識庫,我們將創建一個能夠處理復雜客戶查詢的智能客服解決方案。 前言 在現代商業環境中,客戶服務是企業成功的關鍵因素之一。傳統客服系統往往面臨…

一人公司智能管理系統概述

系統概述 項目結構 Al_Compny系統采用前后端分離的全棧架構,項目根目錄下包含兩個主要子目錄:Al_Compny_backend(后端服務)和Al_Compny_frontend(前端應用)。核心功能模塊 Al_Compny系統是一個面向"一…

OpenWrt | 在 PPP 撥號模式下啟用 IPv6 功能

文章目錄一、WAN 口配置二、LAN 口配置三、IPv6 測試本文將詳細介紹 將光貓的網絡模式改成橋接之后使用路由器撥號的上網方式的情況下,在 OpenWrt 上使用 PPP 撥號模式上網時,啟用 IPv6 功能的方法。 一、WAN 口配置 首先,我們需要在 網絡 …

Java如何實現一個安全的登錄功能?

安全登錄系統完整教程 📋 目錄 項目概述技術棧安全特性項目結構核心組件詳解安全實現原理部署和運行安全最佳實踐常見問題解答進階擴展 🎯 項目概述 這是一個基于Spring Boot和Spring Security的完整安全登錄系統,專為初學者設計&#xff…

星辰誕愿——生日快樂

前言 今天這篇博客并非技術文章,而是慶祝我可愛的妹妹18歲生日以及介紹我半年以來的學習經歷 祝生網站:星辰誕愿(用戶列表里第一位就是我妹妹,希望大家能獻上自己的祝福,能分享轉發更好,我在此感謝大家。如果使用手機&…

基于STM32單片機的智能糧倉溫濕度檢測藍牙手機APP設計

基于STM32單片機的智能糧倉溫濕度檢測藍牙手機APP設計 1 系統功能介紹 本系統是一款基于STM32單片機的智能糧倉環境監測與控制裝置,核心目標是通過傳感器實時采集糧倉內的溫度和濕度信息,并結合藍牙通信模塊將數據傳輸至手機端,實現對糧倉環境…

簡單視頻轉換器 avi轉mp4

直接上代碼package com.example.videoconverter;import ws.schild.jave.Encoder; import ws.schild.jave.EncoderException; import ws.schild.jave.MultimediaObject; import ws.schild.jave.encode.AudioAttributes; import ws.schild.jave.encode.EncodingAttributes; impor…

Kafka 與 RocketMQ 核心概念與架構對比

Kafka 與 RocketMQ 核心概念與架構對比DeepSeek生成,便于記憶大概邏輯核心概念對比圖 #mermaid-svg-dEbo1XpAjfzOjvUW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-dEbo1XpAjfzOjvUW .error-icon{fill…

30分鐘深度壓測cuBLAS:從FP64到INT8全精度性能剖析

在深度學習和高性能計算領域,GPU的矩陣運算性能是衡量系統算力的核心指標之一。NVIDIA的cuBLAS庫作為CUDA平臺上最基礎的線性代數計算庫,其性能表現直接影響著上層應用的運行效率。本文將詳細介紹如何使用cublasmatmulbench工具對多GPU進行全面的性能基準…

超越模仿:探尋智能的本源

引言:超越模仿,探尋智能的本源近年來,以大語言模型(LLM)為代表的自然語言處理(NLP)技術,在模仿人類語言生成方面取得了令人矚目的成就。從流暢的對話到精煉的文本摘要,機…

ROS/ROS2課程筆記00-大綱-25-26-1

大綱 AI版 以下是基于第四代高校課程核心理念設計的《ROS2機器人程序設計(ROS2 Jazzy版)》課程大綱,突出智能互聯、跨學科融合、終身學習等特征,并融入技術賦能、生態重塑、素養導向等要求: 課程名稱:ROS…

Linux內核進程管理子系統有什么第四十六回 —— 進程主結構詳解(42)

接前一篇文章:Linux內核進程管理子系統有什么第四十五回 —— 進程主結構詳解(41) 本文內容參考: Linux內核進程管理專題報告_linux rseq-CSDN博客 《趣談Linux操作系統 核心原理篇:第三部分 進程管理》—— 劉超 《…

Linux網絡連接不上?NetworkManager提示“device not managed“!

#操作系統 #Linux #NetworkManager適用環境kylin v10Centos 8Redhat 8一、故障現象在CentOS/RHEL(同樣適用于kylin v10)系統中,管理員執行 nmcli connection up ens160 命令嘗試激活名為 ens160 的網絡連接時,遇到以下錯誤:[roo…