最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

首先在主構(gòu)造函數(shù)MainWindow中通過使用setTristate()將前三個(gè)半選框設(shè)置為三態(tài)狀態(tài),并使用setEnabled()將前三個(gè)選擇框設(shè)置為可選擇狀態(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)并設(shè)置為可選擇
    ui->checkBox_a->setTristate();
    ui->checkBox_b->setTristate();
    ui->checkBox_c->setTristate();

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

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

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

// 設(shè)置第一個(gè)選擇框
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("未選中");
    }
    // 否則恢復(fù)默認(rèn)值
    else
    {
        ui->checkBox_a->setText("半選框1");
    }
}

// 設(shè)置第二個(gè)選擇框
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("未選中");
    }
    // 否則恢復(fù)默認(rèn)值
    else
    {
        ui->checkBox_b->setText("半選框2");
    }
}

// 設(shè)置第三個(gè)選擇框
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("未選中");
    }
    // 否則恢復(fù)默認(rèn)值
    else
    {
        ui->checkBox_c->setText("半選框3");
    }
}

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

接著來說說如何實(shí)現(xiàn)清除選擇框的狀態(tài),當(dāng)用戶點(diǎn)擊清除狀態(tài)時(shí),首先我們要做的就是調(diào)用isChecked()來檢查每一個(gè)選擇框是否被選中,如果是則通過setChecked()將屬性設(shè)置為false即可,通過這種方式也可以實(shí)現(xiàn)對特定選擇框狀態(tài)的父子關(guān)聯(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);
    }
}

// 設(shè)置選中全部子框
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);
    }
}

當(dāng)讀者選擇選中全部子框按鈕時(shí),則底部的四個(gè)CheckBox將會(huì)聯(lián)動(dòng),如下圖所示;

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

相關(guān)文章

  • C++用winapi?socket實(shí)現(xiàn)局域網(wǎng)語音通話功能

    C++用winapi?socket實(shí)現(xiàn)局域網(wǎng)語音通話功能

    這篇文章主要介紹了socket實(shí)現(xiàn)局域網(wǎng)語音通話?c++?winapi,功能介紹支持錄音設(shè)備查找以及播放設(shè)備查找,支持局域網(wǎng)語音通話,通話包含語音來電提醒和掛斷電話的提示信息,還能實(shí)時(shí)的獲取在線用戶的數(shù)量以及對應(yīng)的id,需要的的朋友一起看看
    2022-06-06
  • C++使用string的大數(shù)除法運(yùn)算(4)

    C++使用string的大數(shù)除法運(yùn)算(4)

    這篇文章主要為大家詳細(xì)介紹了C++使用string的大數(shù)除法運(yùn)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • VisualStudio2022打包項(xiàng)目文件為.exe安裝包

    VisualStudio2022打包項(xiàng)目文件為.exe安裝包

    本文主要介紹了VisualStudio2022打包項(xiàng)目文件為.exe安裝包,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • C語言中“不受限制”的字符串函數(shù)總結(jié)

    C語言中“不受限制”的字符串函數(shù)總結(jié)

    這篇文章主要給大家總結(jié)介紹了C語言中一些“不受限制”的字符串函數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C語言 數(shù)據(jù)結(jié)構(gòu)堆排序順序存儲(chǔ)(升序)

    C語言 數(shù)據(jù)結(jié)構(gòu)堆排序順序存儲(chǔ)(升序)

    這篇文章主要介紹了C語言 數(shù)據(jù)結(jié)構(gòu)堆排序順序存儲(chǔ)(升序)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 使用Qt+SDL2實(shí)現(xiàn)WAV音頻播放功能

    使用Qt+SDL2實(shí)現(xiàn)WAV音頻播放功能

    本文介紹了如何使用Qt和SDL2實(shí)現(xiàn)WAV音頻文件的播放功能,通過將音頻播放邏輯放在Qt子線程中,避免了UI阻塞,并使用SDL2的拉取模式實(shí)現(xiàn)音頻播放,需要的朋友可以參考下
    2026-02-02
  • C++11中l(wèi)onglong超長整型和nullptr初始化空指針

    C++11中l(wèi)onglong超長整型和nullptr初始化空指針

    本文介紹?C++11?標(biāo)準(zhǔn)中新添加的?long?long?超長整型和?nullptr?初始化空指針,在?C++11?標(biāo)準(zhǔn)下,相比?NULL?和?0,使用?nullptr?初始化空指針可以令我們編寫的程序更加健壯,本文結(jié)合示例代碼給大家詳細(xì)講解,需要的朋友跟隨小編一起看看吧
    2022-12-12
  • 解析使用C++編寫無錯(cuò)代碼的方法技巧

    解析使用C++編寫無錯(cuò)代碼的方法技巧

    本篇文章是對使用C++編寫無錯(cuò)代碼的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言算法練習(xí)之佩奇借書

    C語言算法練習(xí)之佩奇借書

    這篇文章主要該大家分享C語言佩奇借書的練習(xí),文章主要通過描述佩奇借書的問題然后確定程序框架將結(jié)果運(yùn)算出來,下面來看詳細(xì)內(nèi)容吧,需要的朋友可以參考一下
    2022-03-03
  • c++實(shí)現(xiàn)新年煙花效果完整代碼

    c++實(shí)現(xiàn)新年煙花效果完整代碼

    這篇文章主要給大家介紹了關(guān)于c++實(shí)現(xiàn)新年煙花效果的相關(guān)資料,文中給出了詳細(xì)完整代碼,適合初學(xué)C語言/C++的小伙伴學(xué)習(xí)研究,需要的朋友可以參考下
    2023-11-11

最新評論

安福县| 山丹县| 肥西县| 同心县| 郁南县| 兴隆县| 义马市| 伊宁县| 濮阳市| 乡城县| 盐亭县| 二手房| 卓资县| 德昌县| 阿勒泰市| 东明县| 林口县| 南开区| 安泽县| 龙门县| 富川| 兴隆县| 济源市| 会泽县| 广河县| 弥渡县| 同心县| 舞钢市| 大英县| 集贤县| 麻阳| 水富县| 安国市| 玉溪市| 永吉县| 巴林右旗| 藁城市| 彰化市| 新昌县| 星座| 屏边|