QT QButtonGroup 实现单选、多选

一、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 实现单选、多选_第1张图片

你可能感兴趣的:(QT,QT,QCheckbutton,QRediobutton)