QT中QToolBox的使用,实现抽屉效果

简介:

drawer.h

#ifndef DRAWER_H
#define DRAWER_H

#include <QtGui>
#include "ui_drawer.h"

class drawer : public QToolBox
{
	Q_OBJECT

public:
	drawer( QWidget *parent=0, Qt::WindowFlags  f=0 );
	~drawer();

	QToolButton *toolButton1_1;
	QToolButton *toolButton1_2;
	QToolButton *toolButton1_3;
	QToolButton *toolButton1_4;
	QToolButton *toolButton1_5;
	QToolButton *toolButton2_1;
	QToolButton *toolButton2_2;
	QToolButton *toolButton3_1;
	QToolButton *toolButton3_2;	
private:
	Ui::drawerClass ui;
};

#endif // DRAWER_H

drawer.cpp

#include "drawer.h"

drawer::drawer( QWidget *parent, Qt::WindowFlags  f )
	: QToolBox( parent, f )
{

	setWindowTitle(tr("My QQ"));	

	QGroupBox *groupBox1 = new QGroupBox();

	toolButton1_1 = new QToolButton( );
	toolButton1_1->setText( tr( "beibei" ) );
	toolButton1_1->setIcon( QPixmap(":/images/bb.png") );
	toolButton1_1->setIconSize( QPixmap(":/images/bb.png").size() );
	toolButton1_1->setAutoRaise( TRUE );
	toolButton1_1->setToolButtonStyle( Qt::ToolButtonTextBesideIcon);
	// toolButton1_1->setToolButtonStyle( Qt::ToolButtonTextUnderIcon);

	toolButton1_2 = new QToolButton();
	toolButton1_2->setText( tr( "jingjing" ) );
	toolButton1_2->setIcon( QPixmap( ":/images/jj.png") );
	toolButton1_2->setIconSize( QPixmap( ":/images/jj.png").size() );
	toolButton1_2->setAutoRaise( TRUE );
	toolButton1_2->setToolButtonStyle( Qt::ToolButtonTextUnderIcon);

	toolButton1_3 = new QToolButton();
	toolButton1_3->setText( tr( "huanhuan" ) );
	toolButton1_3->setIcon( QPixmap( ":/images/hh.png") );
	toolButton1_3->setIconSize( QPixmap( ":/images/hh.png").size() );
	toolButton1_3->setAutoRaise( TRUE );
	toolButton1_3->setToolButtonStyle( Qt::ToolButtonTextUnderIcon);

	toolButton1_4 = new QToolButton();
	toolButton1_4->setText( tr( "yingying" ) );
	toolButton1_4->setIcon( QPixmap( ":/images/yy.png") );
	toolButton1_4->setIconSize( QPixmap( ":/images/yy.png").size() );
	toolButton1_4->setAutoRaise( TRUE );
	toolButton1_4->setToolButtonStyle( Qt::ToolButtonTextUnderIcon);

	toolButton1_5 = new QToolButton();
	toolButton1_5->setText( tr( "nini" ) );
	toolButton1_5->setIcon( QPixmap( ":/images/nn.png") );
	toolButton1_5->setIconSize( QPixmap( ":/images/nn.png").size() );
	toolButton1_5->setAutoRaise( TRUE );
	toolButton1_5->setToolButtonStyle( Qt::ToolButtonTextUnderIcon);

	QVBoxLayout *layout1 = new QVBoxLayout(groupBox1);
	layout1->setMargin(10);
	layout1->setAlignment(Qt::AlignHCenter);    
	layout1->addWidget(toolButton1_1);
	layout1->addWidget(toolButton1_2);
	layout1->addWidget(toolButton1_3);
	layout1->addWidget(toolButton1_4);
	layout1->addWidget(toolButton1_5);  
	layout1->addStretch();        

	QGroupBox *groupBox2 = new QGroupBox();

	toolButton2_1 = new QToolButton( );
	toolButton2_1->setText( tr( "pizicai" ) );
	toolButton2_1->setIcon( QPixmap( ":/images/1.png" ) );
	toolButton2_1->setIconSize( QPixmap( ":/images/1.png").size() );
	toolButton2_1->setAutoRaise( TRUE );
	toolButton2_1->setToolButtonStyle( Qt::ToolButtonTextUnderIcon);

	toolButton2_2 = new QToolButton();
	toolButton2_2->setText( tr( "feiyang" ) );
	toolButton2_2->setIcon( QPixmap( ":/images/2.png") );
	toolButton2_2->setIconSize( QPixmap( ":/images/2.png").size() );
	toolButton2_2->setAutoRaise( TRUE );
	toolButton2_2->setToolButtonStyle( Qt::ToolButtonTextUnderIcon);

	QVBoxLayout *layout2 = new QVBoxLayout(groupBox2);
	layout2->setMargin(10);
	layout2->setAlignment(Qt::AlignHCenter);    
	layout2->addWidget(toolButton2_1);
	layout2->addWidget(toolButton2_2);
	layout2->addStretch();       

	QGroupBox *groupBox3 = new QGroupBox();

	toolButton3_1 = new QToolButton( );
	toolButton3_1->setText( tr( "QQ" ) );
	toolButton3_1->setIcon( QPixmap( ":/images/3.png" ) );
	toolButton3_1->setIconSize( QPixmap( ":/images/3.png").size() );
	toolButton3_1->setAutoRaise( TRUE );
	toolButton3_1->setToolButtonStyle( Qt::ToolButtonTextUnderIcon);

	toolButton3_2 = new QToolButton();
	toolButton3_2->setText( tr( "angel" ) );
	toolButton3_2->setIcon( QPixmap( ":/images/4.png") );
	toolButton3_2->setIconSize( QPixmap( ":/images/4.png").size() );
	toolButton3_2->setAutoRaise( TRUE );
	toolButton3_2->setToolButtonStyle( Qt::ToolButtonTextUnderIcon);

	QVBoxLayout *layout3 = new QVBoxLayout(groupBox3);
	layout3->setMargin(10);
	layout3->setAlignment(Qt::AlignHCenter);    
	layout3->addWidget(toolButton3_1);
	layout3->addWidget(toolButton3_2);     
	layout3->addStretch();         

	this->addItem( ( QWidget* )groupBox1 , tr("my friends" ));
	this->addItem( ( QWidget* )groupBox2 , tr("stranger" ));
	this->addItem( ( QWidget* )groupBox3 , tr("blacklist" ));
}

drawer::~drawer()
{

}

main.cpp

#include "drawer.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	drawer *w=new drawer;
	w->show();
	return a.exec();
}

项目文件组织结构为:image

图片大家可以自己找一些。资源文件drawer.qrc内容为:

image

下面贴出效果:

imageimageimage


==============================================================================
本文转自被遗忘的额博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/04/10/2440108.html,如需转载请自行联系原作者
相关文章
|
容器
Qt利用布局,widget和ScrollArea实现抽屉效果
Qt利用布局,widget和ScrollArea实现抽屉效果
Qt利用布局,widget和ScrollArea实现抽屉效果
我的Qt作品(4)实现可折叠和伸缩的自定义Widget--抽屉控件
我的Qt作品(4)实现可折叠和伸缩的自定义Widget--抽屉控件
1776 0
我的Qt作品(4)实现可折叠和伸缩的自定义Widget--抽屉控件
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
432 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
510 0
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
671 2
|
存储 运维 监控
Qt开发网络嗅探器01
Qt开发网络嗅探器01
|
网络协议 容器
Qt开发网络嗅探器03
Qt开发网络嗅探器03
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
343 0