日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

C++ Qt开发:RadioButton单选框分组组件

發布時間:2023/12/24 windows 47 coder
生活随笔 收集整理的這篇文章主要介紹了 C++ Qt开发:RadioButton单选框分组组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Qt 是一個跨平臺C++圖形界面開發庫,利用Qt可以快速開發跨平臺窗體應用程序,在Qt中我們可以通過拖拽的方式將不同組件放到指定的位置,實現圖形化開發極大的方便了開發效率,本章將重點介紹QRadioButton單選框組件以及與之交互的QButtonGroup類的常用方法及靈活運用。

QRadioButton是Qt框架中的一個部件(Widget),用于提供單選按鈕的界面元素。單選按鈕允許用戶從多個互斥的選項中選擇一個,通常用于表示一組相關但互斥的選項。

以下是QRadioButton的一些常用方法,以表格形式概述:

方法 描述
QRadioButton(QWidget *parent = nullptr) 構造函數,創建一個單選按鈕,可指定父部件。
setText(const QString &text) 設置單選按鈕的文本標簽。
text() const 獲取單選按鈕的文本標簽。
setChecked(bool checked) 設置單選按鈕的選中狀態,true表示選中,false表示未選中。
isChecked() const 判斷單選按鈕是否處于選中狀態。
setAutoExclusive(bool enabled) 設置是否自動將同一組中的其他單選按鈕設為未選中狀態。
setObjectName(const QString &name) 設置對象名稱,用于樣式表等。
setCheckedState(Qt::CheckState state) 設置單選按鈕的選中狀態,可選值有Qt::CheckedQt::UncheckedQt::PartiallyChecked
checkState() const 獲取單選按鈕的選中狀態,返回Qt::CheckedQt::UncheckedQt::PartiallyChecked
toggled(bool checked) 信號,當單選按鈕的選中狀態發生改變時觸發。參數checked表示是否選中。
click() 模擬點擊單選按鈕,觸發點擊事件。
setDisabled(bool disable) 設置單選按鈕是否被禁用,true表示禁用,false表示啟用。
setEnabled(bool enable) 設置單選按鈕是否啟用,true表示啟用,false表示禁用。
blockSignals(bool block) 阻塞或解除阻塞信號與槽的連接,用于在某些操作時臨時禁用信號槽。

這些方法提供了對QRadioButton的一些基本操作,包括設置文本、選中狀態、信號與槽等。通過這些方法,可以在應用程序中方便地創建和控制單選按鈕。總而言之,QRadioButton是一種簡單而有效的界面元素,用于在多個互斥的選項中進行單一選擇。

談到QRadioButton組件就不得不提起QButtonGroup類,因為這兩者通常是需要組合在一起使用的,一般來說QButtonGroup用于管理一組按鈕,通常是單選按鈕(QRadioButton)或復選按鈕(QCheckBox)。它為這組按鈕提供了一些便捷的方法,方便進行管理和操作。

首先我們需要在mainwindow.h頭文件中手動增加一個槽函數的聲明,該槽函數用于觸發后的處理工作。

private slots:
    void MySlots();

其次在主程序mainwindow.cpp中我們通過new QBUttonGroup新建一個按鈕組,并將其加入到group_sex組內,創建信號和槽的綁定,將信號全部綁定到MySlots()槽函數上,如下所示;

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

#include <QMessageBox>
#include <QButtonGroup>
#include <iostream>

// 定義全局組變量
QButtonGroup *group_sex;

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

    // 將RadioButton放入ButtonGroup組中
    group_sex = new QButtonGroup(this);
    group_sex->addButton(ui->radioButton_male,0);
    group_sex->addButton(ui->radioButton_female,1);
    group_sex->addButton(ui->radioButton_unknown,2);

    // 設置默認選中
    ui->radioButton_unknown->setChecked(true);

    // 綁定信號和槽
    connect(ui->radioButton_male,SIGNAL(clicked(bool)),this,SLOT(MySlots()));
    connect(ui->radioButton_female,SIGNAL(clicked(bool)),this,SLOT(MySlots()));
    connect(ui->radioButton_unknown,SIGNAL(clicked(bool)),this,SLOT(MySlots()));
}

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

// 手動創建一個槽函數
void MainWindow::MySlots()
{
    switch(group_sex->checkedId())
    {
    case 0:
        std::cout << "male" << std::endl;
        QMessageBox::information(nullptr, "信息", "用戶選中了男", QMessageBox::Ok);
        break;
    case 1:
        std::cout << "female" << std::endl;
        QMessageBox::information(nullptr, "信息", "用戶選中了女", QMessageBox::Ok);
        break;
    case 2:
        std::cout << "unknown" << std::endl;
        QMessageBox::information(nullptr, "信息", "用戶選中了未知", QMessageBox::Ok);
        break;
    }
}

當程序運行后,讀者可自行選擇不同的單選框,此時會彈出不同的提示信息,如下圖;

當然如果讀者不想使用QButtonGroup對單選框進行分組操作,同樣可以實現判斷選中狀態,通過依次檢查isChecked()單選框的狀態即可實現,但是此類方式并不推薦使用。

void MainWindow::on_pushButton_clicked()
{
    if(ui->radioButton_male->isChecked() == true)
    {
        std::cout << "選中男" << std::endl;
    }
    if(ui->radioButton_female->isChecked() == true)
    {
        std::cout << "選中女" << std::endl;
    }
    if(ui->radioButton_unknown->isChecked() == true)
    {
        std::cout << "選中未知" << std::endl;
    }
}

總結

以上是生活随笔為你收集整理的C++ Qt开发:RadioButton单选框分组组件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。