思路:
第一步:创建一个类,继承QToolBox 。
第二步:这个类有两个QGroupBox成员(对应两个抽屉,简单一点)。
第三步:每个QGroupBox里面有若干个QToolButton,并且用QVBoxLayout布局好。完成。
备注:
QToolBox有一个方法叫做setAutoRaise,setAutoRaise(true)的时候,QToolButton有一种鼠标悬浮在上面的时候,按钮会凸显出来的效果。
效果如下图:
toolBtn1_1 = new QToolButton;
toolBtn1_1->setText(tr("zhangsan"));
toolBtn1_1->setAutoRaise(true);//有一种鼠标悬浮在按钮上的时候,按钮会凸显出来的效果
toolBtn1_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolBtn1_2 = new QToolButton;
toolBtn1_2->setText(tr("lisi"));
toolBtn1_2->setAutoRaise(true);
toolBtn1_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolBtn1_3 = new QToolButton;
toolBtn1_3->setText(tr("wangwu"));
toolBtn1_3->setAutoRaise(true);
toolBtn1_3->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolBtn1_4 = new QToolButton;
toolBtn1_4->setText(tr("xiaozhao"));
toolBtn1_4->setAutoRaise(true);
toolBtn1_4->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolBtn1_5 = new QToolButton;
toolBtn1_5->setText(tr("xiaosun"));
toolBtn1_5->setAutoRaise(true);
toolBtn1_5->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
QGroupBox* groupBox1 = new QGroupBox;
QVBoxLayout* layout1 = new QVBoxLayout(groupBox1);
layout1->setMargin(0);
layout1->setAlignment(Qt::AlignHCenter);
layout1->addWidget(toolBtn1_1);
layout1->addWidget(toolBtn1_2);
layout1->addWidget(toolBtn1_3);
layout1->addWidget(toolBtn1_4);
layout1->addWidget(toolBtn1_5);
layout1->addStretch();
toolBtn2_1 = new QToolButton;
toolBtn2_1->setText(tr("xiaowang"));
toolBtn2_1->setAutoRaise(true);
toolBtn2_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolBtn2_2 = new QToolButton;
toolBtn2_2->setText(tr("xiaozhang"));
toolBtn2_2->setAutoRaise(true);
toolBtn2_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
QGroupBox* groupBox2 = new QGroupBox;
QVBoxLayout* layout2 = new QVBoxLayout(groupBox2);
layout2->setMargin(0);
layout2->setAlignment(Qt::AlignHCenter);
layout2->addWidget(toolBtn2_1);
layout2->addWidget(toolBtn2_2);
layout2->addStretch();
this->addItem((QWidget*)groupBox1,tr("my good friends"));
this->addItem((QWidget*)groupBox2,tr("strangers"));