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

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

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