18.1 核心功能界面演示
drawer.h
#ifndef DRAWER_H
#define DRAWER_H
#include "widget.h"
#include <QToolBox>
#include <QToolButton>
class Drawer : public QToolBox
{
Q_OBJECT
public:
Drawer(QWidget *parent=0,Qt::WindowFlags f=0);
private:
QToolButton *toolBtn1;
QToolButton *toolBtn2;
QToolButton *toolBtn3;
QToolButton *toolBtn4;
QToolButton *toolBtn5;
QToolButton *toolBtn6;
QToolButton *toolBtn7;
QToolButton *toolBtn8;
QToolButton *toolBtn9;
private slots:
void showChatWidget1();
void showChatWidget2();
void showChatWidget3();
void showChatWidget4();
void showChatWidget5();
void showChatWidget6();
void showChatWidget7();
void showChatWidget8();
void showChatWidget9();
private:
Widget *chatWidget1;
Widget *chatWidget2;
Widget *chatWidget3;
Widget *chatWidget4;
Widget *chatWidget5;
Widget *chatWidget6;
Widget *chatWidget7;
Widget *chatWidget8;
Widget *chatWidget9;
};
#endif
//
DRAWER_H
drawer.cpp
#include "drawer.h"
#include <QGroupBox>
#include <QVBoxLayout>
class QString rsrcPath = ":/images";
Drawer::Drawer(QWidget *parent, Qt::WindowFlags f)
:QToolBox(parent,f)
{
setWindowTitle (tr("Myself QQ 2015"));
setWindowIcon (QPixmap(rsrcPath + "/qq.png"));
toolBtn1 = new QToolButton;
toolBtn1->setText (tr(" 苦涩沙漠"));
toolBtn1->setIcon (QPixmap(rsrcPath + "/Cherry.png"));
toolBtn1->setIconSize (QPixmap(rsrcPath + "/Cherry.png").size () * 0.58);
toolBtn1->setAutoRaise (true); //当鼠标离开时,按钮自动恢复成弹起状态
toolBtn1->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
connect(toolBtn1, SIGNAL(clicked(bool)), this, SLOT(showChatWidget1()));
toolBtn2 = new QToolButton;
toolBtn2->setText (tr(" 飘逝的云"));
toolBtn2->setIcon (QPixmap(rsrcPath + "/dr.png"));
toolBtn2->setIconSize (QPixmap(rsrcPath + "/dr.png").size () * 0.58);
toolBtn2->setAutoRaise (true); //当鼠标离开时,按钮自动恢复成弹起状态
toolBtn2->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
connect(toolBtn2, SIGNAL(clicked(bool)), this, SLOT(showChatWidget2()));
toolBtn3 = new QToolButton;
toolBtn3->setText (tr(" 会飞的狼"));
toolBtn3->setIcon (QPixmap(rsrcPath + "/jj.png"));
toolBtn3->setIconSize (QPixmap(rsrcPath + "/dr.png").size () * 0.58);
toolBtn3->setAutoRaise (true);
toolBtn3->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
connect(toolBtn3, SIGNAL(clicked(bool)), this, SLOT(showChatWidget3()));
toolBtn4 = new QToolButton;
toolBtn4->setText (tr(" 金色的鱼"));
toolBtn4->setIcon (QPixmap(rsrcPath + "/lswh.png"));
toolBtn4->setIconSize (QPixmap(rsrcPath + "/lswh.png").size () * 0.58);
toolBtn4->setAutoRaise (true);
toolBtn4->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
connect(toolBtn4, SIGNAL(clicked(bool)), this, SLOT(showChatWidget4()));
toolBtn5 = new QToolButton;
toolBtn5->setText (tr(" 一夜情柔"));
toolBtn5->setIcon (QPixmap(rsrcPath + "/qmnn.png"));
toolBtn5->setIconSize (QPixmap(rsrcPath + "/qmnn.png").size () * 0.58);
toolBtn5->setAutoRaise (true);
toolBtn5->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
connect(toolBtn5, SIGNAL(clicked(bool)), this, SLOT(showChatWidget5()));
toolBtn6 = new QToolButton;
toolBtn6->setText (tr(" 天马行空"));
toolBtn6->setIcon (QPixmap(rsrcPath + "/spqy.png"));
toolBtn6->setIconSize (QPixmap(rsrcPath + "/spqy.png").size () * 0.58);
toolBtn6->setAutoRaise (true);
toolBtn6->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
connect(toolBtn6, SIGNAL(clicked(bool)), this, SLOT(showChatWidget6()));
toolBtn7 = new QToolButton;
toolBtn7->setText (tr(" 飞奔时代"));
toolBtn7->setIcon (QPixmap(rsrcPath + "/wy.png"));
toolBtn7->setIconSize (QPixmap(rsrcPath + "/wy.png").size () * 0.58);
toolBtn7->setAutoRaise (true);
toolBtn7->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
connect(toolBtn7, SIGNAL(clicked(bool)), this, SLOT(showChatWidget7()));
toolBtn8 = new QToolButton;
toolBtn8->setText (tr(" 一世情缘"));
toolBtn8->setIcon (QPixmap(rsrcPath + "/qq.png"));
toolBtn8->setIconSize (QPixmap(rsrcPath + "/qq.png").size () * 0.58);
toolBtn8->setAutoRaise (true);
toolBtn8->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
connect(toolBtn8, SIGNAL(clicked(bool)), this, SLOT(showChatWidget8()));
toolBtn9 = new QToolButton;
toolBtn9->setText (tr(" 钟爱一生"));
toolBtn9->setIcon (QPixmap(rsrcPath + "/ymrl.png"));
toolBtn9->setIconSize (QPixmap(rsrcPath + "/ymrl.png").size () * 0.58);
toolBtn9->setAutoRaise (true);
toolBtn9->setToolButtonStyle (Qt::ToolButtonTextBesideIcon);
connect(toolBtn9, SIGNAL(clicked(bool)), this, SLOT(showChatWidget9()));
//创建一个QGroupBox类类实例,在文本例中对应抽屉“群成员”
QGroupBox *groupBox = new QGroupBox;
QVBoxLayout *layout = new QVBoxLayout(groupBox);
layout->setMargin (6); //设置边框距
layout->setSpacing (2);
layout->setAlignment (Qt::AlignLeft | Qt::AlignTop);
layout->addWidget (toolBtn1);
layout->addWidget (toolBtn2);
layout->addWidget (toolBtn3);
layout->addWidget (toolBtn4);
layout->addWidget (toolBtn5);
layout->addWidget (toolBtn6);
layout->addWidget (toolBtn7);
layout->addWidget (toolBtn8);
layout->addWidget (toolBtn9);
this->addItem ((QWidget*)groupBox, tr("群成员"));
}
void Drawer::showChatWidget1 ()
{
//以按钮toolBtn1的文本为用户名创建一个Widget类的实例,对应于一个聊天窗口
chatWidget1 = new Widget(0, toolBtn1->text ());
//设置聊天的标题文字
chatWidget1->setWindowTitle (toolBtn1->text ());
//设置聊天窗口图标
chatWidget1->setWindowIcon (toolBtn1->icon ());
chatWidget1->show ();
}
void Drawer::showChatWidget2 ()
{
chatWidget2 = new Widget(0, toolBtn2->text ());
chatWidget2->setWindowTitle (toolBtn2->text ());
chatWidget2->setWindowIcon (toolBtn2->icon ());
chatWidget2->show ();
}
void Drawer::showChatWidget3 ()
{
chatWidget3 = new Widget(0, toolBtn3->text ());
chatWidget3->setWindowTitle (toolBtn3->text ());
chatWidget3->setWindowIcon (toolBtn3->icon ());
chatWidget3->show ();
}
void Drawer::showChatWidget4 ()
{
chatWidget4 = new Widget(0, toolBtn4