//本程序由QT5 creator编译可运行
//dialog.h
1 #ifndef DIALOG_H
#define DIALOG_H #include <QDialog> class Dialog : public QDialog
{
Q_OBJECT public:
Dialog(QWidget *parent = );
~Dialog();
}; #endif // DIALOG_H
//drawer.h
1 #ifndef DRAWER_H
#define DRAWER_H
#include <QToolBox>
#include <QToolButton> class Drawer : public QToolBox
{
Q_OBJECT
public:
Drawer(QWidget *parent = , Qt::WindowFlags f = );
private:
QToolButton *toolBtn1_1;
QToolButton *toolBtn1_2;
QToolButton *toolBtn1_3;
QToolButton *toolBtn1_4;
QToolButton *toolBtn1_5;
QToolButton *toolBtn2_1;
QToolButton *toolBtn2_2;
QToolButton *toolBtn3_1;
QToolButton *toolBtn3_2; }; #endif // DRAWER_H
//dialog.cpp
1 #include "dialog.h" Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
} Dialog::~Dialog()
{ }
//drawer.cpp
//代码中,图片与build-MyQQExample-Desktop_Qt_5_6_0_MinGW_32bit-Debug放置同一个文件夹下面
1 #include "drawer.h"
#include <QGroupBox>
#include <QVBoxLayout> Drawer::Drawer(QWidget *parent, Qt::WindowFlags f)
:QToolBox(parent, f)
{
setWindowTitle (tr("My QQ")); //设置主窗体的标题
//创建一个QToolButton类实例,分别对应于抽屉中的每一个按钮
toolBtn1_1 = new QToolButton;
toolBtn1_1->setText (tr("张三")); //设置按钮的文字
toolBtn1_1->setIcon (QPixmap("11.png")); //设置按钮的图标
toolBtn1_1->setIconSize (QPixmap("11.png").size ());
toolBtn1_1->setAutoRaise (true); //当鼠标离开时,按钮自动恢复为弹起状态
//设置按钮的ToolButtonStyle属性->主要用来描述按钮的文字和图标的显示方式.
//Qt::ToolButtonTextBesideIcon-->文字在图标旁边
toolBtn1_1->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
toolBtn1_2 = new QToolButton;
toolBtn1_2->setText (tr("李四"));
toolBtn1_2->setIcon (QPixmap("12.png"));
toolBtn1_2->setIconSize (QPixmap("12.png").size ());
toolBtn1_2->setAutoRaise (true);
toolBtn1_2->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
toolBtn1_3 = new QToolButton;
toolBtn1_3->setText (tr("王五"));
toolBtn1_3->setIcon (QPixmap("13.png"));
toolBtn1_3->setIconSize (QPixmap("13.png").size ());
toolBtn1_3->setAutoRaise (true);
toolBtn1_3->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolBtn1_4 = new QToolButton;
toolBtn1_4->setText(tr("小赵"));
toolBtn1_4->setIcon(QPixmap("14.png"));
toolBtn1_4->setIconSize(QPixmap("14.png").size());
toolBtn1_4->setAutoRaise(true);
toolBtn1_4->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolBtn1_5 = new QToolButton;
toolBtn1_5->setText(tr("小孙"));
toolBtn1_5->setIcon(QPixmap("155.png"));
toolBtn1_5->setIconSize(QPixmap("155.png").size());
toolBtn1_5->setAutoRaise(true);
toolBtn1_5->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
//创建一个QGroupBox类实例,在本例中对应每一个抽屉.
//QGroupBox *groupBox2 = new QGroupBox。。创建其余两栏抽屉
QGroupBox *groupBox1 = new QGroupBox;
//布局
//用来设置抽屉内各个按钮的布局
QVBoxLayout *layout1 = new QVBoxLayout(groupBox1);
//布局中各个窗体显示间距
layout1->setMargin ();
//布局中各个窗体显示位置
layout1->setAlignment (Qt::AlignLeft);
//加入抽屉内的各个按钮
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 ("老王");
toolBtn2_1->setIcon (QPixmap("21.png"));
toolBtn2_1->setIconSize (QPixmap("21.png").size ());
toolBtn2_1->setAutoRaise (true);
toolBtn2_1->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
toolBtn2_2 = new QToolButton;
toolBtn2_2->setText (tr("小张"));
toolBtn2_2->setIcon (QPixmap("22.png"));
toolBtn2_2->setIconSize (QPixmap("22.png").size ());
toolBtn2_2->setAutoRaise(true);
toolBtn2_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
QGroupBox *groupBox2 = new QGroupBox;
QVBoxLayout *layout2 = new QVBoxLayout(groupBox2);
layout2->setMargin ();
layout2->setAlignment (Qt::AlignLeft);
layout2->addWidget (toolBtn2_1);
layout2->addWidget (toolBtn2_2);
toolBtn3_1 =new QToolButton;
toolBtn3_1->setText(tr("小陈"));
toolBtn3_1->setIcon(QPixmap("31.png"));
toolBtn3_1->setIconSize(QPixmap("31.png").size());
toolBtn3_1->setAutoRaise(true);
toolBtn3_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
toolBtn3_2 =new QToolButton;
toolBtn3_2->setText(tr("小李"));
toolBtn3_2->setIcon(QPixmap("32.png"));
toolBtn3_2->setIconSize(QPixmap("32.png").size());
toolBtn3_2->setAutoRaise(true);
toolBtn3_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
QGroupBox *groupBox3=new QGroupBox;
QVBoxLayout *layout3=new QVBoxLayout(groupBox3);
layout3->setMargin();
layout3->setAlignment(Qt::AlignLeft);
layout3->addWidget(toolBtn3_1);
layout3->addWidget(toolBtn3_2);
//将准备好的抽屉插入ToolBox中
this->addItem ((QWidget*)groupBox1, tr("我的好友"));
this->addItem ((QWidget*)groupBox2, tr("陌生人"));
this->addItem ((QWidget*)groupBox3, tr("黑名单"));
}
//main.cpp
1 #include "dialog.h"
#include <QApplication>
#include "drawer.h" int main(int argc, char *argv[])
{
QApplication a(argc, argv); Drawer drawer;
drawer.show ();
return a.exec();
}

运行效果,如图所示.

简易qq对话框的更多相关文章

  1. 打开网页自动弹出QQ对话框的实现办法

    Ian今天偶然进入一个公司的企业网站,然后QQ聊天窗口这里马上就弹出与那个公司客服聊天的窗口.怀着好奇的心态,Ian分析了该公司的网站源码,发现了实现网页弹出qq对话框的原理与实现方法,相信此时此刻你 ...

  2. 相似QQ对话框上下部分可拖动代码

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  3. 网络Socket编程(简易qq实现之C/S通信1)

    1. 目标:实现两个用户之间的通信,利用的是简单的Socket知识以及简略界面 2. 界面:分为客户端与服务器端(如下图) 3. 基本功能:客户端先向服务器端发送一个消息,这样就可以让客户端与服务器端 ...

  4. (转)android底部弹出iOS7风格对话选项框(QQ对话框)--第三方开源--IOS_Dialog_Library

    本文转载于:http://blog.csdn.net/zhangphil/article/details/44940339 完成这个效果的是使用了 IOS_Dialog_Library 下载地址:ht ...

  5. 打开网页直接弹出qq对话框?

    代码一: http://wpa.qq.com/msgrd?v=3&uin=此处输入QQ号&site=qq&menu=yes 代码二: <iframe src=" ...

  6. 在分享到微信里的网页中,打开qq对话框。

    废话不多说,就是要去这个网址把qq申请一下服务. 网址: http://shang.qq.com/v3/widget.html 大概长这样: 2.截取这一段代码: 3.重新分享到微信,因为微信好像有缓 ...

  7. js 弹出QQ对话框

    首先打开下面链接,开通QQ推广. http://shang.qq.com/v3/index.html 然后在页面代码中写入 <a target="_blank" href=& ...

  8. js弹出QQ对话框在线交谈

    <div style="position:absolute; top:110px; right:220px; z-index:2;"> <a target=&qu ...

  9. 超链接弹出QQ对话框

    <a href="tencent://message/?uin=371820621">java技术交流群57388149</a>

随机推荐

  1. Smarty缓存技术总结

    大家应该都知道合理使用缓存能有效的减轻网站的服务器压力,php Smarty作为一个非常优秀的php模板引擎,它为我们提供了非常简单而多样化的缓存操作,下面就让我们学习一下smarty缓存操作方面的一 ...

  2. C#操作Excel的技巧与方法 设置单元格等

    C#操作Excel可以分为客户端和插件版本,区别就是是否需要Excel环境,功能实现一样 一.通用操作与处理(有点乱有时间再整理) 1:工程对excel类库的导入,如: c:\program file ...

  3. Android应用性能优化

    整理自http://androidperformance.com的几篇博客 代码内存优化-Java篇 避免创建不必须的对象,虽然GC可以回收不用的对象,但为对象分配内存和回收它们同样是需要消耗资源的. ...

  4. STL next_permutation和prev_permutation函数

    利用next_permutation实现全排列升序输出,从尾到头找到第一个可以交换的位置, 直接求到第一个不按升序排列的序列. #include <iostream> #include & ...

  5. 汉诺塔(河内塔)算法 ----C语言递归实现

    汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子, 在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺 ...

  6. caffe学习系列(3):数据层介绍

    一个模型由多个层构成,如Data,conv,pool等.其中数据层是模型的最底层,是模型的入口. 提供数据的输入,也提供数据从Blobs转换成别的格式进行保存输出还包括数据的预处理(如减去 均值, 放 ...

  7. 2016年10月24日--HTML常用标签

    body的属性: bgcolor                页面背景色 background             背景壁纸.图片 text                     文字颜色 t ...

  8. 3D音效

    摘自:http://baike.baidu.com/view/1330437.htm?fr=aladdin 3D音效就是用扬声器仿造出似乎存在但是虚构的声音.例如扬声器仿造头顶上有一架飞机从左至右飞过 ...

  9. 【架构】RPC 使用 Haproxy、keepalive作为负载均衡

    参考资料: Haproxy+keepalived 高可用负载:  http://www.tuicool.com/articles/qY7Rz23 keepalived原理(主从配置+haproxy)及 ...

  10. Tomcat 7最大并发连接数的正确修改方法

    这是个很简单的问题,但是搜了一圈,发现大家都写错了.所以这里总结一下: 几乎所有的中文网页都介绍,要修改Tomcat的默认最大并发连接数,应该进行如下设置(实际上这些步骤是错误的): -------- ...