Qt中radioButton使用

这篇博客介绍了如何在Qt环境中使用radioButton控件,包括创建ButtonGroup、设置默认选中项及响应按钮点击事件。通过代码示例展示了如何连接信号与槽,监听radioButton的选择变化,并根据选择输出相应的信号值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt中radioButton使用

先在ui界面上拖几个radioButton控件,如图(加了个Group Box):
在这里插入图片描述

直接上代码:

//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QAbstractButton>  
//QAbstractButton类是按钮部件的抽象基类,提供了按钮所共有的功能.
//QAbstractButton提供了点击和勾选按钮。QRadioButton和QCheckBox类只提供了勾选按钮
#include <QButtonGroup>  //

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    QButtonGroup *btnGroup;  //添加buttongroup

public slots:
    void onButtonClicked(QAbstractButton *button);

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>

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

    //radioButton
    btnGroup= new QButtonGroup(this);
    btnGroup->addButton(ui->radioBtnV1);
    btnGroup->addButton(ui->radioBtnV2);
    btnGroup->addButton(ui->radioBtnV3);
    btnGroup->addButton(ui->radioBtnV4);

    btnGroup->setId(ui->radioBtnV1,0);
    btnGroup->setId(ui->radioBtnV2,1);
    btnGroup->setId(ui->radioBtnV3,2);
    btnGroup->setId(ui->radioBtnV4,3);
    ui->radioBtnV1->setChecked(1);  //默认选中第一个

    //ButtonGroup信号链接
    connect(btnGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));   //信号输出选择

}
void MainWindow::onButtonClicked(QAbstractButton *button)  //radio button选择
{
    Q_UNUSED(button)
    int sigChoose = btnGroup->checkedId();  //选择信号
    if(sigChoose==0) qDebug() << sigChoose;
    else if(sigChoose==1) qDebug() << sigChoose;
    else if(sigChoose==2) qDebug() << sigChoose;
    else if(sigChoose==3) qDebug() << sigChoose;
}

MainWindow::~MainWindow()
{
    delete ui;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值