实例:MyQQ界面
新建:Qt Widgets Application
项目名称:MyQQ
类名:Dialog
基类:QDialog
不选择“创建界面”
代码及详细注释如下:
【main.cpp】
1 #include "dialog.h" //使用哪个类就必须把包含该类的头文件引用过来(*.h文件中包含了相应类的定义)
2 #include <QApplication> //每个使用[Qt图形化应用程序]中都必须使用一个QApplication对象
3 //QApplication管理各种各样的图形化应用程序的广泛资源、基本设置、控制流及事件处理等
4 #include "drawer.h"
5
6 int main(int argc, char *argv[]) //这里是应用程序的入口。几乎所有使用Qt的情况下,main()函数只需在将控制转交给Qt库之前执行初始化,然后Qt库通过事件向程序告知用户的行为。
7 //所有Qt程序必须有且只有一个main()函数。argc是命令行变量的数量,argv是命令行变量的数组。
8 {
9 QApplication a(argc, argv); // a是创建的QApplication类的对象,用来处理命令行变量。所有被Qt识别的命令行参数都将从argv中移去,argc也因此减少
10 // Dialog w;
11 // w.show();
12
13 Drawer drawer; //创建Drawer类的对象(包含该类头文件)
14 drawer.show(); //窗口部件可见
15
16 return a.exec(); //main()函数将控制权交给Qt,Qt完成事件处理工作,当应用程序退出的时候,exec()函数的值就会返回。
17 //exec()函数中,Qt接收并处理用户和系统的事件,并且将他们传递给适当的窗口部件。
18 }
【drawer.cpp】
1 #include "drawer.h"
2
3 #include <QGroupBox>
4 #include <QVBoxLayout>
5
6 Drawer::Drawer(QWidget *parent, Qt::WindowFlags f):QToolBox(parent,f)
7 {
8 setWindowTitle(tr("My-QQ"));
9
10 toolBtn1_1 = new QToolButton; //创建QToolButton类的实例
11 toolBtn1_1->setText(tr("赵四小姐")); //设置按钮的文字
12 toolBtn1_1->setIcon(QPixmap("1.png")); //设置按钮的图标
13 toolBtn1_1->setIconSize(QPixmap("1.png").size());//设置按钮的大小与图标大小一样
14 toolBtn1_1->setAutoRaise(true); //鼠标离开时,按钮自动恢复弹起状态
15 toolBtn1_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//文字和图标的显示方式:文字显示在图标旁边
16
17 toolBtn1_2 = new QToolButton; //创建QToolButton类的实例
18 toolBtn1_2->setText(tr("赵四")); //设置按钮的文字
19 toolBtn1_2->setIcon(QPixmap("2.png")); //设置按钮的图标
20 toolBtn1_2->setIconSize(QPixmap("2.png").size());//设置按钮的大小与图标大小一样
21 toolBtn1_2->setAutoRaise(true); //鼠标离开时,按钮自动恢复弹起状态
22 toolBtn1_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//文字和图标的显示方式:文字显示在图标旁边
23
24 toolBtn1_3 = new QToolButton; //创建QToolButton类的实例
25 toolBtn1_3->setText(tr("小姐")); //设置按钮的文字
26 toolBtn1_3->setIcon(QPixmap("3.png")); //设置按钮的图标
27 toolBtn1_3->setIconSize(QPixmap("3.png").size());//设置按钮的大小与图标大小一样
28 toolBtn1_3->setAutoRaise(true); //鼠标离开时,按钮自动恢复弹起状态
29 toolBtn1_3->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//文字和图标的显示方式:文字显示在图标旁边
30
31 toolBtn1_4 = new QToolButton; //创建QToolButton类的实例
32 toolBtn1_4->setText(tr("赵小姐")); //设置按钮的文字
33 toolBtn1_4->setIcon(QPixmap("4.png")); //设置按钮的图标
34 toolBtn1_4->setIconSize(QPixmap("4.png").size());//设置按钮的大小与图标大小一样
35 toolBtn1_4->setAutoRaise(true); //鼠标离开时,按钮自动恢复弹起状态
36 toolBtn1_4->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//文字和图标的显示方式:文字显示在图标旁边
37
38 toolBtn1_5 = new QToolButton; //创建QToolButton类的实例
39 toolBtn1_5->setText(tr("赵姐")); //设置按钮的文字
40 toolBtn1_5->setIcon(QPixmap("5.png")); //设置按钮的图标
41 toolBtn1_5->setIconSize(QPixmap("5.png").size());//设置按钮的大小与图标大小一样
42 toolBtn1_5->setAutoRaise(true); //鼠标离开时,按钮自动恢复弹起状态
43 toolBtn1_5->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//文字和图标的显示方式:文字显示在图标旁边
44
45 QGroupBox *groupBox1 = new QGroupBox; //抽屉1
46 QVBoxLayout *layout1 = new QVBoxLayout(groupBox1);//抽屉内各按钮的布局:垂直
47 layout1->setMargin(10); //布局中各窗体的显示间距
48 layout1->setAlignment(Qt::AlignHCenter); //布局中各窗体的显示位置:居中对齐
49
50 //将各按钮加入抽屉1中
51 layout1->addWidget(toolBtn1_1);
52 layout1->addWidget(toolBtn1_2);
53 layout1->addWidget(toolBtn1_3);
54 layout1->addWidget(toolBtn1_4);
55 layout1->addWidget(toolBtn1_5);
56
57 //按钮之后插入一个占位符,使所有按钮能够靠上对齐,且整个抽屉大小发生改变时保证按钮的大小不发生变化
58 layout1->addStretch();
59
60 toolBtn2_1 = new QToolButton; //创建QToolButton类的实例
61 toolBtn2_1->setText(tr("葫芦娃")); //设置按钮的文字
62 toolBtn2_1->setIcon(QPixmap("6.png")); //设置按钮的图标
63 toolBtn2_1->setIconSize(QPixmap("6.png").size());//设置按钮的大小与图标大小一样
64 toolBtn2_1->setAutoRaise(true); //鼠标离开时,按钮自动恢复弹起状态
65 toolBtn2_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//文字和图标的显示方式:文字显示在图标旁边
66
67 toolBtn2_2 = new QToolButton; //创建QToolButton类的实例
68 toolBtn2_2->setText(tr("爷爷")); //设置按钮的文字
69 toolBtn2_2->setIcon(QPixmap("7.png")); //设置按钮的图标
70 toolBtn2_2->setIconSize(QPixmap("7.png").size());//设置按钮的大小与图标大小一样
71 toolBtn2_2->setAutoRaise(true); //鼠标离开时,按钮自动恢复弹起状态
72 toolBtn2_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//文字和图标的显示方式:文字显示在图标旁边
73
74 QGroupBox *groupBox2 = new QGroupBox; //抽屉2
75 QVBoxLayout *layout2 = new QVBoxLayout(groupBox2);//抽屉内各按钮的布局:垂直
76 layout2->setMargin(10); //布局中各窗体的显示间距
77 layout2->setAlignment(Qt::AlignHCenter); //布局中各窗体的显示位置:居中对齐
78
79 //将各按钮加入抽屉2中
80 layout2->addWidget(toolBtn2_1);
81 layout2->addWidget(toolBtn2_2);
82
83 toolBtn3_1 = new QToolButton; //创建QToolButton类的实例
84 toolBtn3_1->setText(tr("嘻嘻")); //设置按钮的文字
85 toolBtn3_1->setIcon(QPixmap("8.png")); //设置按钮的图标
86 toolBtn3_1->setIconSize(QPixmap("8.png").size());//设置按钮的大小与图标大小一样
87 toolBtn3_1->setAutoRaise(true); //鼠标离开时,按钮自动恢复弹起状态
88 toolBtn3_1->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//文字和图标的显示方式:文字显示在图标旁边
89
90 toolBtn3_2 = new QToolButton; //创建QToolButton类的实例
91 toolBtn3_2->setText(tr("哈哈")); //设置按钮的文字
92 toolBtn3_2->setIcon(QPixmap("9.png")); //设置按钮的图标
93 toolBtn3_2->setIconSize(QPixmap("9.png").size());//设置按钮的大小与图标大小一样
94 toolBtn3_2->setAutoRaise(true); //鼠标离开时,按钮自动恢复弹起状态
95 toolBtn3_2->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//文字和图标的显示方式:文字显示在图标旁边
96
97 QGroupBox *groupBox3 = new QGroupBox; //抽屉3
98 QVBoxLayout *layout3 = new QVBoxLayout(groupBox3);//抽屉内各按钮的布局:垂直
99 layout3->setMargin(10); //布局中各窗体的显示间距
100 layout3->setAlignment(Qt::AlignHCenter); //布局中各窗体的显示位置:居中对齐
101
102 //将各按钮加入抽屉3中
103 layout3->addWidget(toolBtn3_1);
104 layout3->addWidget(toolBtn3_2);
105
106 //将准备好的抽屉插入ToolBox中
107 this->addItem((QWidget*)groupBox1,tr("我的好友"));
108 this->addItem((QWidget*)groupBox2,tr("陌生人"));
109 this->addItem((QWidget*)groupBox3,tr("黑名单"));
110 }