Qt5之QRadioButton
來源:程序員人生 發(fā)布時(shí)間:2015-04-13 08:03:31 閱讀次數(shù):11218次
本例程介紹QRadioButton的使用,包括QRadioButton的分組、多個(gè)QRadioButton控件響應(yīng)同1個(gè)槽函數(shù)、QRadioButton的ID設(shè)置從而避免繁瑣的判斷。
1、在UI界面添加以下控件:

2、對(duì)QRadioButton控件進(jìn)行分組
QRadioButton的分組有多重方法,如采取組合框、QWidge等,下面介紹采取QButtonGroup方法來實(shí)現(xiàn)分組,好處是不影響QRadioButton在界面上的顯示(組合框分組方式會(huì)在界面上出現(xiàn)組合框,要以自己的需要選擇),和方便ID的設(shè)置。
首先添加頭文件:
#include <QButtonGroup>
聲明
QButtonGroup變量
QButtonGroup *btnGroupFruits;
QButtonGroup *btnGroupVegetables;
在窗體構(gòu)造函數(shù)中初始化
QButtonGroup,和把相應(yīng)的QRadioButton添加進(jìn)來并設(shè)置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、多個(gè)
QRadioButton控件響應(yīng)同1個(gè)槽函數(shù)
在頭文件聲明槽函數(shù):
public slots:
void onRadioClickFruits();
void onRadioClickVegetables();
在窗體構(gòu)造函數(shù)中綁定信號(hào)與槽:
connect(ui->radioButton11, SIGNAL(clicked()), this, SLOT(onRadioClickFruits()));
connect(ui->radioButton12, SIGNAL(clicked()), this, SLOT(onRadioClickFruits()));
connect(ui->radioButton13, SIGNAL(clicked()), this, SLOT(onRadioClickFruits()));
connect(ui->radioButton21, SIGNAL(clicked()), this, SLOT(onRadioClickVegetables()));
connect(ui->radioButton22, SIGNAL(clicked()), this, SLOT(onRadioClickVegetables()));
connect(ui->radioButton23, SIGNAL(clicked()), this, SLOT(onRadioClickVegetables()));
槽函數(shù)的實(shí)現(xiàn):
QRadioButton的槽函數(shù)中,不需要逐一檢查QRadioButton控件狀態(tài),僅僅通過btnGroupFruits->checkedId()來獲知哪個(gè)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;
}
}
以下是程序運(yùn)行結(jié)果:

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)