使用自定义的QToolBox实现抽屉效果

思路:
第一步:创建一个类,继承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"));
发布了11 篇原创文章 · 获赞 0 · 访问量 201

猜你喜欢

转载自blog.csdn.net/shensheng100221/article/details/103666314