一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

实例: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 }

 

posted on 2024-03-15 18:45  一杯清酒邀明月  阅读(28)  评论(0编辑  收藏  举报