加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Qt5之QRadioButton

发布时间:2020-12-13 20:06:00 所属栏目:PHP教程 来源:网络整理
导读:本例程介绍QRadioButton的使用,包括 QRadioButton的分组、多个 QRadioButton控件响应同1个槽函数、 QRadioButton的ID设置从而避免繁琐的判断。 1、在UI界面添加以下控件: 2、对 QRadioButton控件进行分组 QRadioButton的分组有多重方法,如采取组合框、QWi

本例程介绍QRadioButton的使用,包括QRadioButton的分组、多个QRadioButton控件响应同1个槽函数、QRadioButton的ID设置从而避免繁琐的判断。

1、在UI界面添加以下控件:


2、对QRadioButton控件进行分组

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

     首先添加头文件:

#include <QButtonGroup>
     声明QButtonGroup变量

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

btnGroupFruits = new QButtonGroup(this); btnGroupFruits->addButton(ui->radioButton11,0); btnGroupFruits->addButton(ui->radioButton12,1); btnGroupFruits->addButton(ui->radioButton13,2); ui->radioButton11->setChecked(true); btnGroupVegetables = new QButtonGroup(this); btnGroupVegetables->addButton(ui->radioButton21,0); btnGroupVegetables->addButton(ui->radioButton22,1); btnGroupVegetables->addButton(ui->radioButton23,2); ui->radioButton21->setChecked(true);
3、多个QRadioButton控件响应同1个槽函数

     在头文件声明槽函数:

public slots: void onRadioClickFruits(); void onRadioClickVegetables();
    在窗体构造函数中绑定信号与槽:

connect(ui->radioButton11,SIGNAL(clicked()),this,SLOT(onRadioClickFruits())); connect(ui->radioButton12,SLOT(onRadioClickFruits())); connect(ui->radioButton13,SLOT(onRadioClickFruits())); connect(ui->radioButton21,SLOT(onRadioClickVegetables())); connect(ui->radioButton22,SLOT(onRadioClickVegetables())); connect(ui->radioButton23,SLOT(onRadioClickVegetables()));
   槽函数的实现:

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

void MainWindow::onRadioClickFruits() { switch(btnGroupFruits->checkedId()) { case 0: qDebug() << QString::fromLocal8Bit("苹果"); break; case 1: qDebug() << QString::fromLocal8Bit("西红柿"); break; case 2: qDebug() << QString::fromLocal8Bit("芒果"); break; } } void MainWindow::onRadioClickVegetables() { switch(btnGroupVegetables->checkedId()) { case 0: qDebug() << QString::fromLocal8Bit("土豆"); break; case 1: qDebug() << QString::fromLocal8Bit("青椒"); break; case 2: qDebug() << QString::fromLocal8Bit("菠菜"); break; } }
以下是程序运行结果:


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读