QRadioButton控件

 

简介

QRadioButton部件提供了一个带有文本标签单选框(单选按钮)。

  

QRadioButton是一个可以切换选中(checked)或未选中(unchecked)状态的选项按钮。单选框通常呈现给用户一个“多选一”的选择。也就是说,在一组单选框中,一次只能选中一个单选框。

单选框默认开启自动互斥(autoExclusive)。如果启用了自动互斥,属于同一个父部件的单选框的行为就和属于一个互斥按钮组的一样。如果你需要为属于同一父部件的单选框设置多个互斥按钮组,把它们加入QButtonGroup中。

每当一个按钮切换选中或未选中状态时,会发出的toggled()信号。如果希望每个按钮切换状态时触发一个动作,连接到这个信号。使用isChecked()来查看特定按钮是否被选中。

就像QPushButton一样,单选框可以显示文本,以及可选的小图标。图标使用setIcon()来设置,文本可以在构造函数或通过setText()来设置。

在UI界面中加入QRadioButton控件

 

对QRadioButton控件进行分组

QRadioButton的分组有多重方法,如采用组合框、QWidge等,下面介绍采用QButtonGroup方法来实现分组,好处是不影响QRadioButton在界面上的显示(组合框分组方式会在界面上出现组合框,要以自己的需要选择),以及方便ID的设置。

  

添加头文件

#include <QButtonGroup>

#include <QDebug>

声明QButtonGroup变量

private:

    QButtonGroup *groupButton_friutes;
    QButtonGroup *groupButton_drinkings;

在窗体构造函数中初始化QButtonGroup,把相应的QRadioButton添加进来并设置ID

/// friutes

    groupButton_friutes = new  QButtonGroup(this);
    groupButton_friutes->addButton(ui->radioButton_apple, 1);
    groupButton_friutes->addButton(ui->radioButton_banana, 2);
    groupButton_friutes->addButton(ui->radioButton_grape, 3);
    ui->radioButton_apple->setChecked(true);
 
    /// drinkings
    groupButton_drinkings = new  QButtonGroup(this);
    groupButton_drinkings->addButton(ui->radioButton_alcolhol, 11);
    groupButton_drinkings->addButton(ui->radioButton_beer, 12);
    groupButton_drinkings->addButton(ui->radioButton_wine, 13);
    ui->radioButton_wine->setChecked(true);
 

多个QRadioButton控件响应同一个槽函数

在头文件中声明槽函数

private slots:
    void slots_fruits();
    void slots_drinkings();

  

在窗体构造函数中绑定信号和槽函数

/// slots
    //绑定信号和槽函数
    connect(ui->radioButton_apple,SIGNAL(clicked(bool)),
            this,SLOT(slots_fruits()));
    connect(ui->radioButton_banana,SIGNAL(clicked(bool)),
            this,SLOT(slots_fruits()));
    connect(ui->radioButton_grape,SIGNAL(clicked(bool)),
            this,SLOT(slots_fruits()));
 
    //绑定信号和槽函数
    connect(ui->radioButton_alcolhol,SIGNAL(clicked(bool)),
            this,SLOT(slots_drinkings()));
    connect(ui->radioButton_beer,SIGNAL(clicked(bool)),
            this,SLOT(slots_drinkings()));
    connect(ui->radioButton_wine,SIGNAL(clicked(bool)),
            this,SLOT(slots_drinkings()));

槽函数的实现

QRadioButton的槽函数中,不需要逐个检查QRadioButton控件状态,仅仅通过groupButton1->checkedId()来获知哪一个QRadioButton控件被选中,其返回被选中控件的ID值。

  

void Widget::slots_fruits()
{
    qDebug()<<"fruits:";
    switch(groupButton_friutes->checkedId())
       {
       case 1:
           qDebug() <<"苹果"<<endl;
           break;
       case 2:
           qDebug() <<"香蕉"<<endl;
           break;
       case 3:
           qDebug() <<"葡萄"<<endl;
           break;
       }
}
void Widget::slots_drinkings()
{
    qDebug()<<"vegetables:";
    switch(groupButton_drinkings->checkedId())
       {
       case 11:
           qDebug() <<"啤酒"<<endl;
           break;
       case 12:
           qDebug() <<"白酒"<<endl;
           break;
       case 13:
           qDebug() <<"红酒"<<endl;
           break;
       }
}

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值