目录
1. 创建一个新项目
1.1 创建类的基类
1.2 main.cpp代码释义
2. 代码写在哪?
2.1 怎么找到我们需要的函数?
1. 创建一个新项目
点击创建项目,开始创建:
1.1 创建类的基类
- QMainWindow:带菜单栏的窗口
- QWidget:空白窗口
- QDialog: 对话框窗口
注意:保存项目的路径中不能有中文!项目工程名称一般不要有特殊符号或者中文!
1.2 main.cpp代码释义
单击完成,系统就自动打开了main.cpp文件,如下图所示:
- #include "dialog.h":包含了程序中要完成功能的Dialog类的定义,在Dialog类中封装完成所需要的功能。注意:使用哪个类就必须将该类的头文件引用过来。例如,若用到了一个按钮类,则必须在此处顶部添加一行代码:#include "QPushButton",这表明包含了按钮QPushButton类的定义。
- #include <QApplication>:Application类的定义。在每个使用Qt图形化应用程序中都必须使用一个QApplication对象。QApplication管理了各种各样的图形化应用程序的广泛资源、基本设置、控制流及事件处理等。
- int main(int argc, char *argv[]):应用程序的入口,几乎在所有使用Qt的情况下,main() 函数只需要在将控制转交给Qt库之前执行初始化,然后Qt库通过事件向程序告知用户的行为。所有Qt程序中都必须有且只有一个main() 函数。main() 函数有两个参数,即:argc和argv。argc是命令行变量的数量,argv是命令行变量的数组。
- QApplication a(argc, argv):a是这个程序的QApplication对象。在任何Qt的窗口系统部件被使用之前必须创建QApplication对象。它在这里被创建并且处理这些命令行变量。所有被Qt识别的命令行参数都将从argv中被移去(并且argc也因此而减少)。
- Dialog w:创建一个对话框对象。
- w.show():当创建一个窗口部件的时候,默认它是不可见的,必须调用show() 函数使它变为可见。
- return a.exec():程序进入消息循环,等待可能的输入进行响应。这里就是main() 函数将控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候,exec() 函数的值就会返回。在exec() 函数中,Qt接收并处理用户和系统的事件并且将它们传递给适当的窗口部件。
2. 代码写在哪?
可以看到左边菜单栏中有4个文件,其中 main.cpp 是主函数。dialog.cpp 是类的函数,一般情况下,窗口的属性和添加控件的操作都会在类的构造函数中去写,优点是可以让主程序中无多余代码,程序阅读也方便。而 dialog.h 是类和头文件,dialog.ui 是界面设计代码。
比如我现在想要修改一下窗口的标题,然后将窗口设置为固定大小并且不可以拉伸。那么问题来了,假设我不知道这个修改窗口标题的函数是什么该怎么办呢?
2.1 怎么找到我们需要的函数?
我们可以单击左侧的帮助按钮,然后将查询方式改为索引,接着我们开始在搜索框中搜索我们想要函数。那搜什么呢?既然我们想设置的是窗口的标题,那么肯定是和窗口有关。那么我们先试着输入单词window,然后我们发现下面有一个函数 setWindowTitle() 。
除了在帮助中查找,我们还可以在电脑的开始菜单栏中找到Qt文件夹下的 Assistant (助手)。
打开Qt助手,我们还是切到索引,然后输入单词 window,如下图:
注意:如果函数在类中未找到,可去其基类中查找。
后退、向前可以点击左上角的2个黄色箭头。
接着我们开始写代码:
#include "dialog.h"
#include "./ui_dialog.h"
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
, ui(new Ui::Dialog)
{
ui->setupUi(this);
// 修改窗口标题
this->setWindowTitle("我的第一个窗口");
// 修改窗口的大小
this->resize(500, 300);
// 设置窗口不可拉伸
this->setFixedSize(600, 600);
}
Dialog::~Dialog()
{
delete ui;
}
看下运行效果: