QGroupBox重写,使之可选中,可折叠

发布时间:2024年01月15日

/*********************重写QGroupBox类***************/
class ?CustomGroupBox :public QGroupBox
{
?? ?Q_OBJECT
public:
?? ?explicit CustomGroupBox(QWidget *parent = nullptr);
?? ?~CustomGroupBox();
public slots:
?? ?void getCheckedSignal(bool checked); //选中信号槽
}
/***************************重写GroupBox类? 构造函数******************/
CustomGroupBox::CustomGroupBox(QWidget *parent):
?? ?QGroupBox(parent)
{
?? ?setCheckable(true);
?? ?setChecked(true);
? ? ? ? ? ? ? ? connect(this,&GroupBox::clicked,this,&CustomGroupBox::getCheckedSignal);
}
CustomGroupBox::~CustomGroupBox(){
{
}
//***********************槽函数****************/
void CustomGroupBox::getCheckedSignal(bool checked)
{
?? ?QList<QWidget *>widgets = this->findChildren<QWidget *>();
?? ?int size = widget.size();
?? ?if(!checked)
?? ?{
?? ? ?? ?for(int i = 0;i<size;i++)
?? ??? ?{
?? ??? ?widget.at(i)-setVisible(checked);?? ?
?? ??? ?widget.at(i)->setHidden(true);
?? ??? ?}
?? ?}
?? ?else
?? ?{
?? ??? ?for(int i = 0;i<size;i++)
?? ??? ?{
?? ??? ?widget.at(i)-setVisible(checked);?? ?
?? ??? ?widget.at(i)->show();
?? ??? ?}
?? ?}
}

//**************将控件提升为这个类***************/

ui->groupbox 右键提升类名为:CustomGroupBox

/**************设置GroupBox的qss*************/
.goupBox{
?? ?border: 0px solid transparent;
?? ?background-color:#1b1d24;
}
.groupBox::title{
?? ?width:56px;
?? ?height:13px;
?? ?color:#ffffff;
}
.groupBox::indicator:checked{
?? ?image:url(":/themes/icon/open.png")center;
}
.groupBox::indicator:unChecked{
?? ?image:url(":/themes/icon/open.png")center;
}

文章来源:https://blog.csdn.net/m0_67213444/article/details/135554507
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。