Qt之工具盒(QToolBox)

ToolBox是容器组(Containers)中的一员。Containers包括:
(1)Group Box:组框
(2)Scroll Area:滚动区域
(3)Tool Box:工具箱
(4)Tab Widget:标签小部件
(5)Stacked Widget:堆叠部件
(6)Frame:帧
(7)Widget:小部件
(8)MDI Area:MDI区域
(9)Dock Widget:停靠窗体部件
(10)QAxWidget:封装Flash的ActiveX控件
QToolBox提供了一种列状的层叠窗体。抽屉效果是软件界面设计中的一种常见形式,以一种动态直观的方式在大小有限的界面上扩展出更多的功能。
本文以工具盒形式实现了Qt工具箱,示例演示如下:
请添加图片描述

1.功能包括

本文使用到的功能包括:
(1)QToolBox的使用;
(2)QToolButton的使用;
(3)QSpaceItem间距器的使用;
(4)QStyle基础图标的使用;
(5) QToolBox风格qss的使用。

2.功能实现

2.1QToolBox控件添加

新建QToolBoxDlg窗口,添加ToolBox控件。编辑ToolBox增加Layouts、Spacers、Buttons、ItemViews、ItemWidgets、Containers、InputWidgets、DisplayWidgets页面。
在这里插入图片描述
在这里插入图片描述

2.2Layouts布局管理组内容添加

///Layouts
    {
   
        QVBoxLayout *layouts = new QVBoxLayout();
        //增加Vertical Layout
        QToolButton *verticalLayoutBtn = new QToolButton();
        verticalLayoutBtn->setText("Vertical Layout");
        verticalLayoutBtn->setIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)index++));
        verticalLayoutBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        layouts->addWidget(verticalLayoutBtn);

        //增加Horizontal Layout
        QToolButton *horizontalLayoutBtn = new QToolButton();
        horizontalLayoutBtn->setText("Horizontal Layout");
        horizontalLayoutBtn->setIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)index++));
        horizontalLayoutBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        layouts->addWidget(horizontalLayoutBtn);

        //增加Grid Layout
        QToolButton *gridLayoutBtn = new QToolButton();
        gridLayoutBtn->setText("Grid Layout");
        gridLayoutBtn->setIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)index++));
        gridLayoutBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        layouts->addWidget(gridLayoutBtn);

        //增加Form Layout
        QToolButton *formLayoutBtn = new QToolButton();
        formLayoutBtn->setText("Form Layout");
        formLayoutBtn->setIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)index++));
        formLayoutBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        layouts->addWidget(formLayoutBtn);
        //Qt Space间距器
        QSpacerItem *spacer = new QSpacerItem(20,20,QSizePolicy::Minimum,QSizePolicy::Expanding);
        layouts->addItem(spacer);
        layouts->setMargin(10);
        ui->Layouts->setLayout(layouts);
    }

2.3Spacers空间间隔组内容添加

    ///Spacers
    {
   
        QVBoxLayout *Spacers = new QVBoxLayout();
        //增加Horizontal Spacer
        QToolButton *horizontalSpacerBtn = new QToolButton();
        horizontalSpacerBtn->setText("Horizontal Spacer");
        horizontalSpacerBtn->setIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)index++));
        horizontalSpacerBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        Spacers->addWidget(horizontalSpacerBtn);

        //增加Verical Spacer
        QToolButton *verticalSpacerBtn = new QToolButton();
        verticalSpacerBtn->setText("Verical Spacer");
        verticalSpacerBtn->setIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)index++));
        verticalSpacerBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        Spacers->addWidget(verticalSpacerBtn);
        QSpacerItem *spacer = new QSpacerItem(20,20,QSizePolicy::Minimum,QSizePolicy::Expanding);
        Spacers->addItem(spacer);
        Spacers->setMargin(10);
        ui->Spacers->setLayout(Spacers);
    }

2.4Buttons按钮组内容添加

///Buttons
    {
   
        QVBoxLayout *Buttons = new QVBoxLayout();
        //增加Push Button
        QToolButton *pushBtn = new QToolButton();
        pushBtn->setText("Push Button");
        pushBtn->setIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)index++));
        pushBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        Buttons->addWidget(pushBtn);

        //增加Tool Button
        QToolButton *toolBtn = new QToolButton();
        toolBtn->setText("Tool Button");
        toolBtn->setIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)index++));
        toolBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        Buttons->addWidget(toolBtn);

        //增加Radio Button
        QToolButton *radioBtn = new QToolButton();
        radioBtn->setText("Radio Button");
        radioBtn->setIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)index++));
        radioBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        Buttons->addWidget(radioBtn);

        //增加Check Button
        QToolButton *checkBtn = new QToolButton();
        checkBtn->setText("Check Buttonr");
        checkBtn->setIcon(QApplication::style()->standardIcon((QStyle::StandardPixmap)index++));
        checkBtn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
        Buttons->addWidget(checkBtn);

        //增加Command Link Button
        QToolButton *commandLinkBtn = new QToolButton();
        commandLinkBtn
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值