【Qt5开发及实例】9、一个QQ界面

这个程序主要是为了学习一下工具盒类,这里使用了3个工具盒然后添加到整个界面上,

分别是:好友(good friend), 陌生人(do not remember), 黑名单(black items) 哈哈,原谅我这不咋地的英语,懂我就好。

实现图:

代码:

drawer.h

/**
* 书本:【Qt5开发及实例】
* 功能:实现一个自己的QQ界面
* 文件:drawer.cpp
* 时间:2015年1月2日11:01:12
* 作者:cutter_point
*/
#ifndef DRAWER_H
#define DRAWER_H

#include <QToolBox>
#include <QToolButton>
#include <QWidget>

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

private:    //私有成员
  QToolButton *toolBtn1_1;    //一个个QQ上的头像按钮
  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

drawer.cpp

/**
* 书本:【Qt5开发及实例】
* 功能:实现一个自己的QQ界面,我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;
*         面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想
*         “用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员
* 文件:drawer.cpp
* 时间:2015年1月2日11:01:12
* 作者:cutter_point
*/
#include "drawer.h"

#include <QGroupBox>  //一个有标题的组合框。
#include <QVBoxLayout>  //这个是垂直布局的头文件

Drawer::Drawer(QWidget *parent, Qt::WindowFlags f) :
  QToolBox(parent, f)
{
  setWindowTitle(tr("My QQ"));    //项目框的标题

  toolBtn1_1 = new QToolButton;   //创建一个toolbutton对象工具盒类
  toolBtn1_1->setText(tr("zhang san"));   //张三
  toolBtn1_1->setIcon(QPixmap("://11.png"));    //引入照片11
  toolBtn1_1->setIconSize(QPixmap("://11.png").size());   //规定照片的大小
  toolBtn1_1->setAutoRaise(true);   //设置自动浮起是否有效为enable。
  toolBtn1_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //按钮的文字显示在旁边

  toolBtn1_2 = new QToolButton;   //创建一个toolbutton对象工具盒类
  toolBtn1_2->setText(tr("li shi"));   //李四
  toolBtn1_2->setIcon(QPixmap(":/12.png"));    //引入照片11
  toolBtn1_2->setIconSize(QPixmap(":/12.png").size());   //规定照片的大小
  toolBtn1_2->setAutoRaise(true);   //设置自动浮起是否有效为enable。
  toolBtn1_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //按钮的文字显示在旁边

  toolBtn1_3 = new QToolButton;   //创建一个toolbutton对象工具盒类
  toolBtn1_3->setText(tr("wang wu"));   //王五
  toolBtn1_3->setIcon(QPixmap(":/13.png"));    //引入照片11
  toolBtn1_3->setIconSize(QPixmap(":/13.png").size());   //规定照片的大小
  toolBtn1_3->setAutoRaise(true);   //设置自动浮起是否有效为enable。
  toolBtn1_3->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //按钮的文字显示在旁边

  toolBtn1_4 = new QToolButton;   //创建一个toolbutton对象工具盒类
  toolBtn1_4->setText(tr("xiao zhao"));   //小赵
  toolBtn1_4->setIcon(QPixmap(":/14.png"));    //引入照片11
  toolBtn1_4->setIconSize(QPixmap(":/14.png").size());   //规定照片的大小
  toolBtn1_4->setAutoRaise(true);   //设置自动浮起是否有效为enable。
  toolBtn1_4->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //按钮的文字显示在旁边

  toolBtn1_5 = new QToolButton;   //创建一个toolbutton对象工具盒类
  toolBtn1_5->setText(tr("xiao sun"));   //小孙
  toolBtn1_5->setIcon(QPixmap(":/15.png"));    //引入照片11
  toolBtn1_5->setIconSize(QPixmap(":/15.png").size());   //规定照片的大小
  toolBtn1_5->setAutoRaise(true);   //设置自动浮起是否有效为enable。
  toolBtn1_5->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); //按钮的文字显示在旁边

  QGroupBox *groupBox1 = new QGroupBox;
  QVBoxLayout *layout1 = new QVBoxLayout(groupBox1);     //组合框。
  layout1->setMargin(10);   //设置布局中各窗体的显示间距
  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("xiao wang"));   //小王
  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("xiao zhang"));   //小张
  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(10);   //设置布局中各窗体的显示间距
  layout2->setAlignment(Qt::AlignHCenter);    //布局中各个窗体显示的位置,这里应该是中间
  layout2->addWidget(toolBtn2_1);
  layout2->addWidget(toolBtn2_2);
//  layout1->addStretch();    //插入一个占位符
  /**************************************华丽的分隔符***********************************************************************************************/

  toolBtn3_1 = new QToolButton;
  toolBtn3_1->setText(tr("xiao chen"));   //小陈
  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("xiao li"));   //小李
  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(10);   //设置布局中各窗体的显示间距
  layout3->setAlignment(Qt::AlignHCenter);    //布局中各个窗体显示的位置,这里应该是中间
  layout3->addWidget(toolBtn3_1);
  layout3->addWidget(toolBtn3_2);
//  layout1->addStretch();    //插入一个占位符
  /**************************************华丽的分隔符***********************************************************************************************/

  this->addItem((QWidget*)groupBox1, tr("my good friend"));   //好友
  this->addItem((QWidget*)groupBox2, tr("do not remember"));  //陌生人
  this->addItem((QWidget*)groupBox3, tr("black items"));    //黑名单
}

最后资源链接,这下我知道怎么打开了,在个人主页里面,点击那个

那个down就可以跳转过去了= =,蛋疼。我又试了一遍,这次好像不管怎么搞都挺快的!!!!

不过上传完资源之后直接点,去我的资源页,基本进不去,页面直接崩溃!!!

资源链接,里面有相应的图片:额 ,链接今天半天没显示出来,以后再上链接吧= =

时间: 2024-10-20 16:03:54

【Qt5开发及实例】9、一个QQ界面的相关文章

【Qt5开发及实例】10、关于进度条的显示

平常我们下载东西总会有一个显示下载了多少的进度条,我们今天来实现一下. 这里有两种显示方式 可以选择,第一个是用了 QProgressBar控件,第二个是用了QProgressDialog控件 progressdlg.h /** * 书本:[Qt5开发及实例] * 功能:为了实现进度条的显示 * 文件:progressdlg.h * 时间:2015年1月2日15:27:10 * 作者:cutter_point */ #ifndef PROGRESSDLG_H #define PROGRESSDL

【Qt5开发及实例】12、实现一个简单的文本编辑器1

showwidget.h /** * 书本:[Qt5开发及实例] * 功能:实现一个简单的文本编辑器 * 文件:showwidget.h * 时间:2015年1月18日10:03:21 * 作者:cutter_point */ #ifndef SHOWWIDGET_H #define SHOWWIDGET_H #include <QWidget> #include <QLabel> #include <QTextEdit> #include <QImage>

【Qt5开发及实例】17、一个对话框的坐标参数显示

一个对话框的坐标参数显示 介绍 这个是为了得到对话框的长宽,各个点的坐标,相对坐标,相对父窗口的坐标,相对在桌面的坐标 代码 geometry.h /** * 书本:[Qt5开发及实例] * 功能:显示对话框的坐标信息,参数信息 * 文件:geometry.cpp * 时间:2015年1月20日20:19:35 * 作者:cutter_point */ #ifndef GEOMETRY_H #define GEOMETRY_H #include <QDialog> #include <Q

【Qt5开发及实例】16、实现一个简单的文本编辑器(over)

实现一个简单的文本编辑器 其他具体的代码基础看前面:http://blog.csdn.net/cutter_point/article/details/42839071 1.功能 这个程序又添加了文本编辑功能,什么加粗,斜体,下划线,字体设置,字号设置,文字排版,段落对齐功能. 2.代码全展示 头文件 showwidget.h /** * 书本:[Qt5开发及实例] * 功能:实现一个简单的文本编辑器 * 文件:showwidget.h * 时间:2015年1月18日10:03:21 * 作者:

【Qt5开发及实例】24、数据柱形图显示

数据柱形图显示 1.我们首先把这个这个视图的表格部分表示出来 mainwindow.h /** * 书本:[Qt5开发及实例] * 功能:数据柱形图显示,这个类是表格显示 * 文件:mainwindow.h * 时间:2015年1月28日18:50:54 * 作者:cutter_point */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QStandardItemModel>

【Qt5开发及实例】18、图形修饰小工具

图形修饰小工具 无力吐槽,这是我第三遍写这个了,到底是个什么意思???我只要一贴代码,浏览器直接崩溃,呵呵了,我也是,我现在只要写完一段字我就保存,尼玛在掉我就不写了,写到word里面,再贴上来. 效果 左边图形展示界面 paintarea.h /** * 书本:[Qt5开发及实例] * 功能:实现绘画各种图形 * 文件:paintarea.h * 时间:2015年1月21日16:59:25 * 作者:cutter_point */ #ifndef PAINTAREA_H #define PAI

Qt5主窗体程序: 文本编辑器的实现(Qt5开发及实例)

下面的程序出自<Qt5开发及实例>陆文周. 效果图: 程序是一个文本编辑器的实例,主界面如下: 程序中的源文件和头文件: 源代码: 文件main.cpp的源代码: #include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); QFont font("楷体",15); a.setFont

【Qt5开发及实例】28、获取本机网络信息

networkinformation.h /** * 书本:[Qt5开发及实例] * 功能:获取本机网络信息 * 文件:networkinformation.h * 时间:2015年2月5日14:51:33 * 作者:cutter_point */ #ifndef NETWORKINFORMATION_H #define NETWORKINFORMATION_H #include <QWidget> #include <QLabel> #include <QLineEdit&

【Qt5开发及实例】22、文件浏览器

文件浏览器 今天有点痿了,昨天晚上2点左右睡的,怪我太痴迷编程???? NO!NO!NO!  看网络小说到2点,= =.我也是醉了,不知道为什么昨天晚上就是睡不着,然后就掏出手机看起了小说,结果是TMD居然看到了精彩片段,呵呵,等我回过神来已经2点了,坑.... 今天就做了个简单的小程序,然后就看看书,也没怎么敲代码,我觉得还是蛮好的,有时候不能往死里敲代码,还是要休息一下,看看其他的,思考一下下一步怎么走. 恩!就是这样,好吧,前面的这些才是今天的主要收获!! 文件浏览模型 /** * 书本: