Qt 是一个跨平台的C++应用程序框架,支持Windows、Linux、Mac OS X、Android、iOS、Windows Phone、嵌入式系统等。也就是说,Qt 可以同时支持桌面应用程序开发、嵌入式开发和移动开发,很厉害,如果你有C++的基础就是最好的了,没有的话就赶紧去学习一下C++基础吧。
下载地址: 点击下载
我们这里选择qt-opensource-windows-x86-mingw492-5.6.1-1.exe
然后就一直next安装就好了,这个真没什么好讲的
好的,安装之后,我们就可以来创建一个属于自己的Hello QT工程了
先介绍一下这款IDE的一些东西,首先是左侧边栏上面有五个Tab,分别是欢迎,编辑,设计,Debug和帮助,下面的就是一些操作键了,比如运行之类的
欢迎 : 欢迎这个Tab下有三个选项,分别是Project,是你当前的项目,第二个是示例,就是一些QT项目的源码,还有一个教程,就是一些讲解的学习视频了
编辑 : 这个Tab是写代码的,你打开了cpp的类,就是在这里写代码的
设计 : 这个Tab是写UI的,你只有打开ui的文件才会进入这里
Debug: 这个Tab是不用多说了,debug的时候回走进来
项目:
帮助:查看官方的帮助文档
好的,我们现在准备创建一个QT工程
点击文件 - 新建文件或项目,或者点击欢迎 - Project - New Project都可以
这里我们选择Application - QT Widgets Application ,然后点击Choose
写上项目名和地址,点击下一步
这里选择编译器,我们只有一个MinGW 32的,如果你有两个,会有两个选项的,我们直接下一步就好了
好的,这里就是创建基础的窗口类了,可以看到,我们选择新建一个MainWindow的类,继承QMainWindow,并且头文件为mainwindow.h,并且cpp的源文件为ainwindow.cpp,界面文件为ainwindow.ui
可以看到,这里会让你选择是否加入版本控制,我们的新项目一般是没有的,但是可以看到,他会为我们创建四个我们上面提到的文件以及一个pro文件,这个文件我们等下再细说,点击下一步
我们直接来运行一下
可以看到我们弹出一个空白的窗口了
好的,我们的HelloQT项目创建完成
我们来分析一下他创建的项目文件有什么含义
我们先开看下pro文件,这里我用注释说明
#-------------------------------------------------
#
# Project created by QtCreator 2018-04-06T21:22:39
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#指定生成的应用程序名
TARGET = HelloQT
#编译类型
#有五种
#1.app,应用程序
#2.lib,库
#3.vcapp,VisualStudio应用
#4.vclib,VisualStudio库
#5.subdirs,特殊模板
TEMPLATE = app
#工程中包含的源文件
SOURCES += main.cpp\
mainwindow.cpp
#工程中包含的头文件
HEADERS += mainwindow.h
#工程中包含的UI文件
FORMS += mainwindow.ui
#默认不会创建的一些语法
#DESTDIR += ../bin : 指定生成的应用程序放置的目录
#CONFIG : qmake的一些配置
#还有很多
头文件我们暂时不去考虑,我们看下源文件,一个main.cpp,包含了一个main函数以及一个QApplication,实际上这代表着一个项目
#include "mainwindow.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
这里看到程序执行到main函数后先创建了一个QT应用,定义为a,然后去创建MainWindow的对象w,实际上这个类才是窗口的真正实现,创建这个对象之后就直接show出来,然后return告诉程序已退出结束
那么这里好像也没有什么关键信息,我们目标直接转移到MainWindow
//头文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
//构造函数 继承QMainWindow 和 初始化 ui
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
//设置ui
ui->setupUi(this);
}
//析构函数 程序退出后回收ui
MainWindow::~MainWindow()
{
delete ui;
}
这里我们分析一下,实际上重点还是放在QMainWindow,他是什么?我们以后都会介绍,这里我们只要先看一下他做的一个动作就是ui指针设置了this ui
对应的析构函数退出
好的,那我们再看ui文件,实际上他就是一个空的,我们可以不用去看,ui可以拖动,也可以代码创建一些控件,我们可以写一段代码来验证一下,就写一个文本控件吧
先看代码实现,这就很简单了
//头文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
//构造函数 继承QMainWindow 和 初始化 ui
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
//设置ui
ui->setupUi(this);
//设置文件
QLabel* label = new QLabel;
label->setText("Hello 刘桂林");
//显示
label->show();
}
//析构函数 程序退出后回收ui
MainWindow::~MainWindow()
{
delete ui;
}
这里我们可以看到,我只是创建了一个QLabel指针,然后设置文本后show
这里要注意的是在main.cpp中你已经show了一个MainWIndow的对象,所以要注释掉,不然就会显示两个窗体了
我们再来看下ui的拖动怎么实现
打开我们ui文件后可以看到控件非常的多,我们拖动一下Label后双击去编辑我们的文本就好了,至于其他的控件,我们下节课再去详细说明
这个的运行效果实际上跟上面是一样的
好了,我们的QT先入个门,后面更精彩的在等着你呢。