一、QButtonGroup 简介

​QButtonGroup​​​ 继承自 ​​QObject​​,不是一个可视类,它主要是对按键进行分组,便于按键管理。

二、功能(API)

1. 查看按钮和设置按钮ID,实现单选,多选,点击后通过信号获取点击的按钮ID;

三、结合 QRadioButton,QCheckButton,QPushButton 等实现了 QAbstractButton类的对象实现

样例:

QButtonGroup* mButtonGroup;
mCheckBoxGroup = new QButtonGroup();

mCheckBoxGroup->setExclusive(false); //(false 多选;true 单选) //设置这个按钮组为互斥模式 //true 互斥
QCheckBox *checkBoxA = new QCheckBox();
QCheckBox *checkBoxB = new QCheckBox();

for (int i = 0; i <2; i++)
{

mButtonGroup->addButton(*checkBoxA, i);
mCheckBoxGroup->addButton(*checkBoxB, i);

checkBoxA->setCheckable(true);
checkBoxB->setCheckable(true);
}


// 连接信号和槽
connect(mCheckBoxGroup, SIGNAL(buttonClicked(int)), this, SLOT(slot_CheckBoxGroupClicked(int)));

void ACLManualSegmentationUnityWidget::slot_CheckBoxGroupClicked(int id)
{

if( mCheckBoxGroup->->button(id)->isChecked())//此处可知 具体哪个button id 状态
{
qDebug()<< QString::number(id); <<"checked true";
}
else
{
qDebug()<< QString::number(id); <<"checked false";
}

}

qss

QPushButton{ 
border:1 solid gray;
background-color: rgb(229, 229, 229);
}

QPushButton:hover{
border:1 solid #00aaff;
background-color: #dcfdfc;

}

QPushButton:checked,
QPushButton:pressed{
border:1 solid #0b95ff;
background-color:#bcebff;
}

样式

QT QButtonGroup 实现单选、多选_QT