QT QButtonGroup 实现单选、多选
原创
©著作权归作者所有:来自51CTO博客作者jacklicto的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、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;
}
样式