第四章 Qt5基本对话框——工具盒类QToolButton

目录

一、简介

二、课本实例MyQQExample运行效果

三、代码

main.cpp要做出修改

 drawer.h

drawer.cpp


一、简介

        工具盒类又称为QToolBox。QToolBox提供了一种列状的层叠窗体,而QToolBox提供了一种快速访问命令或选择项的按钮,通常在工具中使用。

        抽屉效果是软件界面设计中的一种常用形式,可以以一种动态直观的方式在大小有限的界面上扩展出更多功能。

二、课本实例MyQQExample运行效果

三、代码

main.cpp要做出修改

#include "dialog.h"
#include <QApplication>
#include "drawer.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //Dialog w;
    //w.show();
    Drawer d;
    d.show();

    return a.exec();
}

 drawer.h

#ifndef DRAWER_H
#define DRAWER_H
#include <QToolButton>
#include <QLayout>
#include <QToolBox>
#include <QPixmap>
#include <QBoxLayout>
#include <QGroupBox>

class Drawer : public QToolBox
{
    Q_OBJECT
public:
    Drawer(QWidget * parent = 0, Qt::WindowFlags f = 0);

private:
    QToolButton * btn1_1;
    QToolButton * btn1_2;
    QToolButton * btn2_1;
    //QToolButton * btn2_2;
    //QToolButton * btn3_1;
    //QToolButton * btn3_2;
};

#endif // DRAWER_H

drawer.cpp

#include "drawer.h"

Drawer::Drawer(QWidget * parent, Qt::WindowFlags f):QToolBox(parent,f)
{
    setWindowTitle(tr("My QQ"));
    //1
    btn1_1 = new QToolButton;//创建一个QToolButton类实例,分别对应于抽屉中的每个按钮
    btn1_1->setText(tr("张三"));//设置按钮文字
    btn1_1->setIcon(QPixmap("QQ.jpg"));//设置按钮图标
    btn1_1->setIconSize(QPixmap("QQ.jpg").size());//设置按钮大小,与图标相同
    btn1_1->setAutoRaise(true);//当鼠标离开时,按钮自动回复为弹起状态
    btn1_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//文字显示在图标旁边
    btn1_2 = new QToolButton;
    btn1_2->setText(tr("李四"));
    btn1_2->setIcon(QPixmap("QQ3.jpg"));
    btn1_2->setIconSize(QPixmap("QQ3.jpg").size());
    btn1_2->setAutoRaise(true);
    btn1_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    QGroupBox * groupBox1 = new QGroupBox;//创建一个QGroupBox对应一个抽屉
    QVBoxLayout * layout1 = new QVBoxLayout(groupBox1);//用来设置抽屉内各个按钮的布局
    layout1->setMargin(10);
    layout1->setAlignment(Qt::AlignCenter);
    //加入抽屉内的各个按钮
    layout1->addWidget(btn1_1);
    layout1->addWidget(btn1_2);
    //插入一个占位符
    layout1->addStretch();
    //2
    btn2_1 = new QToolButton;
    btn2_1->setText(tr("猜猜我是谁"));
    btn2_1->setIcon(QPixmap("QQ2.jpg"));
    btn2_1->setIconSize(QPixmap("QQ2.jpg").size());
    btn2_1->setAutoRaise(true);
    btn2_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    QGroupBox * groupBox2 = new QGroupBox;
    QVBoxLayout * layout2 = new QVBoxLayout(groupBox2);
    layout2->setMargin(10);
    layout2->setAlignment(Qt::AlignCenter);
    //加入抽屉内的各个按钮
    layout2->addWidget(btn2_1);



    //将准备好的抽屉插入ToolBox中
    this->addItem((QWidget*)groupBox1,tr("我的好友"));
    this->addItem((QWidget*)groupBox2,tr("陌生人"));
}

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值