简易qq对话框

//本程序由QT5 creator编译可运行
//dialog.h
1
#ifndef DIALOG_H 2 #define DIALOG_H 3 4 #include <QDialog> 5 6 class Dialog : public QDialog 7 { 8 Q_OBJECT 9 10 public: 11 Dialog(QWidget *parent = 0); 12 ~Dialog(); 13 }; 14 15 #endif // DIALOG_H
//drawer.h
1
#ifndef DRAWER_H 2 #define DRAWER_H 3 #include <QToolBox> 4 #include <QToolButton> 5 6 class Drawer : public QToolBox 7 { 8 Q_OBJECT 9 public: 10 Drawer(QWidget *parent = 0, Qt::WindowFlags f = 0); 11 private: 12 QToolButton *toolBtn1_1; 13 QToolButton *toolBtn1_2; 14 QToolButton *toolBtn1_3; 15 QToolButton *toolBtn1_4; 16 QToolButton *toolBtn1_5; 17 QToolButton *toolBtn2_1; 18 QToolButton *toolBtn2_2; 19 QToolButton *toolBtn3_1; 20 QToolButton *toolBtn3_2; 21 22 }; 23 24 #endif // DRAWER_H
//dialog.cpp
1
#include "dialog.h" 2 3 Dialog::Dialog(QWidget *parent) 4 : QDialog(parent) 5 { 6 } 7 8 Dialog::~Dialog() 9 { 10 11 }
//drawer.cpp
//代码中,图片与build-MyQQExample-Desktop_Qt_5_6_0_MinGW_32bit-Debug放置同一个文件夹下面
1
#include "drawer.h" 2 #include <QGroupBox> 3 #include <QVBoxLayout> 4 5 Drawer::Drawer(QWidget *parent, Qt::WindowFlags f) 6 :QToolBox(parent, f) 7 { 8 setWindowTitle (tr("My QQ")); //设置主窗体的标题 9 //创建一个QToolButton类实例,分别对应于抽屉中的每一个按钮 10 toolBtn1_1 = new QToolButton; 11 toolBtn1_1->setText (tr("张三")); //设置按钮的文字 12 toolBtn1_1->setIcon (QPixmap("11.png")); //设置按钮的图标 13 toolBtn1_1->setIconSize (QPixmap("11.png").size ()); 14 toolBtn1_1->setAutoRaise (true); //当鼠标离开时,按钮自动恢复为弹起状态 15 //设置按钮的ToolButtonStyle属性->主要用来描述按钮的文字和图标的显示方式. 16 //Qt::ToolButtonTextBesideIcon-->文字在图标旁边 17 toolBtn1_1->setToolButtonStyle (Qt::ToolButtonTextBesideIcon); 18 toolBtn1_2 = new QToolButton; 19 toolBtn1_2->setText (tr("李四")); 20 toolBtn1_2->setIcon (QPixmap("12.png")); 21 toolBtn1_2->setIconSize (QPixmap("12.png").size ()); 22 toolBtn1_2->setAutoRaise (true); 23 toolBtn1_2->setToolButtonStyle (Qt::ToolButtonTextBesideIcon); 24 toolBtn1_3 = new QToolButton; 25 toolBtn1_3->setText (tr("王五")); 26 toolBtn1_3->setIcon (QPixmap("13.png")); 27 toolBtn1_3->setIconSize (QPixmap("13.png").size ()); 28 toolBtn1_3->setAutoRaise (true); 29 toolBtn1_3->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); 30 toolBtn1_4 = new QToolButton; 31 toolBtn1_4->setText(tr("小赵")); 32 toolBtn1_4->setIcon(QPixmap("14.png")); 33 toolBtn1_4->setIconSize(QPixmap("14.png").size()); 34 toolBtn1_4->setAutoRaise(true); 35 toolBtn1_4->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); 36 toolBtn1_5 = new QToolButton; 37 toolBtn1_5->setText(tr("小孙")); 38 toolBtn1_5->setIcon(QPixmap("155.png")); 39 toolBtn1_5->setIconSize(QPixmap("155.png").size()); 40 toolBtn1_5->setAutoRaise(true); 41 toolBtn1_5->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); 42 //创建一个QGroupBox类实例,在本例中对应每一个抽屉. 43 //QGroupBox *groupBox2 = new QGroupBox。。创建其余两栏抽屉 44 QGroupBox *groupBox1 = new QGroupBox; 45 //布局 46 //用来设置抽屉内各个按钮的布局 47 QVBoxLayout *layout1 = new QVBoxLayout(groupBox1); 48 //布局中各个窗体显示间距 49 layout1->setMargin (10); 50 //布局中各个窗体显示位置 51 layout1->setAlignment (Qt::AlignLeft); 52 //加入抽屉内的各个按钮 53 layout1->addWidget (toolBtn1_1); 54 layout1->addWidget (toolBtn1_2); 55 layout1->addWidget (toolBtn1_3); 56 layout1->addWidget (toolBtn1_4); 57 layout1->addWidget (toolBtn1_5); 58 //插入一个占位符-使所有按钮能靠上对齐,并且在整个抽屉大小发生改变时保证按钮大小不发生改变 59 layout1->addStretch (); 60 toolBtn2_1 = new QToolButton; 61 toolBtn2_1->setText ("老王"); 62 toolBtn2_1->setIcon (QPixmap("21.png")); 63 toolBtn2_1->setIconSize (QPixmap("21.png").size ()); 64 toolBtn2_1->setAutoRaise (true); 65 toolBtn2_1->setToolButtonStyle (Qt::ToolButtonTextBesideIcon); 66 toolBtn2_2 = new QToolButton; 67 toolBtn2_2->setText (tr("小张")); 68 toolBtn2_2->setIcon (QPixmap("22.png")); 69 toolBtn2_2->setIconSize (QPixmap("22.png").size ()); 70 toolBtn2_2->setAutoRaise(true); 71 toolBtn2_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); 72 QGroupBox *groupBox2 = new QGroupBox; 73 QVBoxLayout *layout2 = new QVBoxLayout(groupBox2); 74 layout2->setMargin (10); 75 layout2->setAlignment (Qt::AlignLeft); 76 layout2->addWidget (toolBtn2_1); 77 layout2->addWidget (toolBtn2_2); 78 toolBtn3_1 =new QToolButton; 79 toolBtn3_1->setText(tr("小陈")); 80 toolBtn3_1->setIcon(QPixmap("31.png")); 81 toolBtn3_1->setIconSize(QPixmap("31.png").size()); 82 toolBtn3_1->setAutoRaise(true); 83 toolBtn3_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); 84 toolBtn3_2 =new QToolButton; 85 toolBtn3_2->setText(tr("小李")); 86 toolBtn3_2->setIcon(QPixmap("32.png")); 87 toolBtn3_2->setIconSize(QPixmap("32.png").size()); 88 toolBtn3_2->setAutoRaise(true); 89 toolBtn3_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); 90 QGroupBox *groupBox3=new QGroupBox; 91 QVBoxLayout *layout3=new QVBoxLayout(groupBox3); 92 layout3->setMargin(10); 93 layout3->setAlignment(Qt::AlignLeft); 94 layout3->addWidget(toolBtn3_1); 95 layout3->addWidget(toolBtn3_2); 96 //将准备好的抽屉插入ToolBox中 97 this->addItem ((QWidget*)groupBox1, tr("我的好友")); 98 this->addItem ((QWidget*)groupBox2, tr("陌生人")); 99 this->addItem ((QWidget*)groupBox3, tr("黑名单")); 100 }
//main.cpp
1
#include "dialog.h" 2 #include <QApplication> 3 #include "drawer.h" 4 5 int main(int argc, char *argv[]) 6 { 7 QApplication a(argc, argv); 8 9 Drawer drawer; 10 drawer.show (); 11 return a.exec(); 12 }

运行效果,如图所示.

原文地址:https://www.cnblogs.com/douzujun/p/5685211.html