欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ Qt開發(fā)之CheckBox多選框組件的用法詳解

 更新時間:2023年12月14日 09:38:02   作者:微軟技術分享  
Qt是一個跨平臺C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺窗體應用程序,在Qt中我們可以通過拖拽的方式將不同組件放到指定的位置,實現(xiàn)圖形化開發(fā)極大的方便了開發(fā)效率,本章將重點介紹CheckBox單行輸入框組件的使用方法,需要的朋友可以參考下

Qt 是一個跨平臺C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺窗體應用程序,在Qt中我們可以通過拖拽的方式將不同組件放到指定的位置,實現(xiàn)圖形化開發(fā)極大的方便了開發(fā)效率,本章將重點介紹CheckBox單行輸入框組件的常用方法及靈活運用。

QCheckBox 是 Qt 中用于實現(xiàn)復選框的組件,它提供了豐富的功能和靈活性。與之前文章中的RadioButton組件不同,CheckBox組件支持多項選擇以及三態(tài)支持,即可以是選中、未選中或半選中的狀態(tài)。

下面是QCheckBox的主要方法的概述和表格形式:

方法名描述
QCheckBox(QWidget *parent = nullptr)構(gòu)造函數(shù),創(chuàng)建一個 QCheckBox 組件。
isChecked() const返回復選框的當前狀態(tài),選中返回 true,否則返回 false。
setCheckState(Qt::CheckState state)設置復選框的狀態(tài),可以是 Qt::Unchecked、Qt::PartiallyChecked 或 Qt::Checked。
checkState() const返回復選框的當前狀態(tài),枚舉類型 Qt::CheckState。
setTristate(bool)啟用或禁用三態(tài)復選框的功能。
isTristate() const返回是否啟用了三態(tài)復選框的功能。
setCheckable(bool checkable)設置復選框是否可以被選中,true 表示可以選中,false 表示不能選中。
isChecked() const返回復選框的當前狀態(tài),選中返回 true,否則返回 false。
setChecked(bool check)設置復選框的狀態(tài),true 表示選中,false 表示未選中。
text() const返回復選框的文本標簽。
setText(const QString &text)設置復選框的文本標簽。
stateChanged(int)復選框狀態(tài)變化時發(fā)射的信號,參數(shù)是枚舉類型 Qt::CheckState,可以是 Qt::Unchecked、Qt::PartiallyChecked 或 Qt::Checked。

這里分別演示一下選擇框組件的使用方法,首先展示如何設置三態(tài)選擇框,然后再展示一下如何通過一個選擇框控制子選擇框的狀態(tài),如下圖是該程序的布局。

首先在主構(gòu)造函數(shù)MainWindow中通過使用setTristate()將前三個半選框設置為三態(tài)狀態(tài),并使用setEnabled()將前三個選擇框設置為可選擇狀態(tài),代碼如下所示;

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 啟用三態(tài)狀態(tài)并設置為可選擇
    ui->checkBox_a->setTristate();
    ui->checkBox_b->setTristate();
    ui->checkBox_c->setTristate();

    // 設置為可選狀態(tài)
    ui->checkBox_a->setEnabled(true);
    ui->checkBox_b->setEnabled(true);
    ui->checkBox_c->setEnabled(true);
}

MainWindow::~MainWindow()
{
    delete ui;
}

接著我們分別為三個選擇框配置選擇事件,通過在半選框中右鍵選中stateChanged(int)點擊確定跳轉(zhuǎn)到選擇框的事件中來,在事件中int state參數(shù)則代表選擇框傳回的狀態(tài)碼,通過判斷狀態(tài)碼Qt::Checked則代表選中、Qt::PartiallyChecked代表半選中、Qt::Unchecked代表未選中。

// 設置第一個選擇框
void MainWindow::on_checkBox_a_stateChanged(int state)
{
    // 選中狀態(tài)
    if (state == Qt::Checked)
    {
       ui->checkBox_a->setText("選中");
    }
    // 半選狀態(tài)
    else if(state == Qt::PartiallyChecked)
    {
       ui->checkBox_a->setText("半選中");
    }
    // 未選中
    else if(state == Qt::Unchecked)
    {
       ui->checkBox_a->setText("未選中");
    }
    // 否則恢復默認值
    else
    {
        ui->checkBox_a->setText("半選框1");
    }
}

// 設置第二個選擇框
void MainWindow::on_checkBox_b_stateChanged(int state)
{
    // 選中狀態(tài)
    if (state == Qt::Checked)
    {
       ui->checkBox_b->setText("選中");
    }
    // 半選狀態(tài)
    else if(state == Qt::PartiallyChecked)
    {
       ui->checkBox_b->setText("半選中");
    }
    // 未選中
    else if(state == Qt::Unchecked)
    {
       ui->checkBox_b->setText("未選中");
    }
    // 否則恢復默認值
    else
    {
        ui->checkBox_b->setText("半選框2");
    }
}

// 設置第三個選擇框
void MainWindow::on_checkBox_c_stateChanged(int state)
{
    // 選中狀態(tài)
    if (state == Qt::Checked)
    {
       ui->checkBox_c->setText("選中");
    }
    // 半選狀態(tài)
    else if(state == Qt::PartiallyChecked)
    {
       ui->checkBox_c->setText("半選中");
    }
    // 未選中
    else if(state == Qt::Unchecked)
    {
       ui->checkBox_c->setText("未選中");
    }
    // 否則恢復默認值
    else
    {
        ui->checkBox_c->setText("半選框3");
    }
}

至此,當選擇不同的選擇框時則可以切換到不同的選擇狀態(tài),如下圖;

接著來說說如何實現(xiàn)清除選擇框的狀態(tài),當用戶點擊清除狀態(tài)時,首先我們要做的就是調(diào)用isChecked()來檢查每一個選擇框是否被選中,如果是則通過setChecked()將屬性設置為false即可,通過這種方式也可以實現(xiàn)對特定選擇框狀態(tài)的父子關聯(lián),代碼如下所示;

// 清除選中狀態(tài)
void MainWindow::on_pushButton_clicked()
{
    // 獲取選擇框狀態(tài)
    int checka = ui->checkBox_a->isChecked();
    int checkb = ui->checkBox_b->isChecked();
    int checkc = ui->checkBox_c->isChecked();

    // 依次重置
    if(checka == true)
    {
        ui->checkBox_a->setChecked(false);
    }
    if(checkb == true)
    {
        ui->checkBox_b->setChecked(false);
    }
    if(checkc == true)
    {
        ui->checkBox_c->setChecked(false);
    }
}

// 設置選中全部子框
void MainWindow::on_checkBox_d_stateChanged(int state)
{
    // 選中所有子框
    if(state == Qt::Checked)
    {
        ui->checkBox_e->setChecked(true);
        ui->checkBox_f->setChecked(true);
        ui->checkBox_g->setChecked(true);
        ui->checkBox_g->setChecked(true);
        ui->checkBox_h->setChecked(true);
    }
    // 取消子框全選狀態(tài)
    if(state == Qt::Unchecked)
    {
        ui->checkBox_e->setChecked(false);
        ui->checkBox_f->setChecked(false);
        ui->checkBox_g->setChecked(false);
        ui->checkBox_g->setChecked(false);
        ui->checkBox_h->setChecked(false);
    }
}

當讀者選擇選中全部子框按鈕時,則底部的四個CheckBox將會聯(lián)動,如下圖所示;

以上就是C++ Qt開發(fā)之CheckBox多選框組件的用法詳解的詳細內(nèi)容,更多關于C++ Qt CheckBox組件的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解C++中類的六大默認成員函數(shù)

    詳解C++中類的六大默認成員函數(shù)

    這篇文章主要介紹了C++類中的六大默認成員函數(shù)的原理雨使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • C++之類和對象課后習題簡單實例

    C++之類和對象課后習題簡單實例

    下面小編就為大家?guī)硪黄狢++之類和對象課后習題簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • C++采用openfilename打開文件對話框用法實例

    C++采用openfilename打開文件對話框用法實例

    這篇文章主要介紹了C++采用openfilename打開文件對話框用法實例,是C++文件操作中非常實用的技巧,需要的朋友可以參考下
    2014-10-10
  • C語言?超詳細總結(jié)講解二叉樹的概念與使用

    C語言?超詳細總結(jié)講解二叉樹的概念與使用

    二叉樹可以簡單理解為對于一個節(jié)點來說,最多擁有一個上級節(jié)點,同時最多具備左右兩個下級節(jié)點的數(shù)據(jù)結(jié)構(gòu)。本文將詳細介紹一下C++中二叉樹的概念和結(jié)構(gòu),需要的可以參考一下
    2022-04-04
  • Qt實現(xiàn)繪制多個設備的流量曲線圖詳解

    Qt實現(xiàn)繪制多個設備的流量曲線圖詳解

    這篇文章主要為大家詳細介紹了如何使用Qt開發(fā)繪制多個設備的流量曲線圖,文中的示例代碼講解詳細,對我們學習Qt有一定的幫助,需要的可以參考一下
    2023-01-01
  • C語言中變參函數(shù)傳參的實現(xiàn)示例

    C語言中變參函數(shù)傳參的實現(xiàn)示例

    本文主要介紹了C語言中變參函數(shù)傳參,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++實現(xiàn)紅黑樹核心插入實例代碼

    C++實現(xiàn)紅黑樹核心插入實例代碼

    紅黑樹是一種二叉搜索樹,但在每個結(jié)點上增加一個存儲位表示結(jié)點的顏色,可以是Red或Black,下面這篇文章主要給大家介紹了關于C++實現(xiàn)紅黑樹核心插入的相關資料,需要的朋友可以參考下
    2023-06-06
  • VSCode配置C/C++語言環(huán)境(2023最新版)

    VSCode配置C/C++語言環(huán)境(2023最新版)

    這篇文章主要介紹了VSCode配置C/C++語言環(huán)境(2023最新版)的全過程,本文給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • 在clion上配置libtorch開發(fā)環(huán)境的圖文詳解

    在clion上配置libtorch開發(fā)環(huán)境的圖文詳解

    這篇文章主要介紹了在clion上配置libtorch開發(fā)環(huán)境的圖文詳解,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 關于C語言函數(shù)strstr()的分析以及實現(xiàn)

    關于C語言函數(shù)strstr()的分析以及實現(xiàn)

    以下是對C語言中strstr()函數(shù)的使用進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07

最新評論