QT_1 - 基本文件介绍

QT - 1

About QT:

Qt的发展史

1991年 Qt最早由奇趣科技开发
1996年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础
2008年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程语言
2012年 Qt又被Digia公司收购
2014年4月 跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。
当前Qt最新版本为 5.9.9

支持的平台

Windows – XP、Vista、Win7、Win8、Win2008、Win10
Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多X11平台
Macintosh – Mac OS X
Embedded – 有帧缓冲支持的嵌入式Linux平台,Windows CE

Qt版本

Qt按照不同的版本发行,分为商业版和开源版
商业版
为商业软件提供开发,他们提供传统商业软件发行版,并且提供在商业有效期内的免费升级和技术支持服务。
开源的LGPL版本:
为了开发自有而设计的开放源码软件,它提供了和商业版本同样的功能,在GNU通用公共许可下,它是免费的。

优点

跨平台,几乎支持所有的平台
接口简单,容易上手,学习QT框架对学习其他框架有参考意义。
一定程度上简化了内存回收机制
开发效率高,能够快速的构建应用程序。
有很好的社区氛围,市场份额在缓慢上升。
可以进行嵌入式开发。

成功案例:

Linux桌面环境 (kde, deepin.... )
wps
谷歌地球
屏幕共享
VLC
virtualBox
...

QT命名规范&快捷键

1.类名首字母大写,单词与单词之间首字母大写
2.函数,变量 首字母小写, 单词与单词之间 首字母大写

ctrl + B --------> 编译
ctrl + R -------->运行
ctrl + F --------> 查找
--------> 帮助文档
--------> 全屏帮助文档
--------> 退出帮助文档
ctrl + 鼠标滚轮 --------> 字体缩放
ctrl + i 自动对齐
ctrl + / --------> 多行注释
ctrl + shift + up / down --------> 整行移动
--------> 同名.h 与.cpp 之间切换
--------> 函数名声明部分于实现部分的跳转

帮助文档的简单介绍

Header: #include //需要包含的头文件
qmake: QT += widgets //需要包含的模块
Inherits: QAbstractButton //父类
Inherited By: QCommandLinkButton //被继承

实例1:

main.cpp文件


#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    //应用程序对象, a, Qt中有且仅有一个应用程序对象
    QApplication a(argc, argv);
    //创建Widget对象w, Widget基类 Qwidget
    Widget w;
    //默认窗口是不会弹出的,如果想弹出,调用show方法
    w.show();
    //a.exec()进入消息循环机制
    return a.exec();
}

.pro文件:

QT       += core gui  //qt包含的模块 core与gui
//大于4版本的qt 包含widget模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = first //生成的目标文件 'first'
TEMPLATE = app //模板 应用程序

//
DEFINES += QT_DEPRECATED_WARNINGS


CONFIG += c++11

//源文件
SOURCES += \
        main.cpp \
        widget.cpp
//头文件
HEADERS += \
        widget.h
FORMS += \
        widget.ui
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

.pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。.pro文件的写法如下:

注释

从“#”开始,到这一行结束。

模板变量

告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = app
app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
lib - 建立一个库的makefile。
vcapp - 建立一个应用程序的VisualStudio项目文件。
vclib - 建立一个库的VisualStudio项目文件。
subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。

指定生成的应用程序名:

TARGET = QtDemo

工程中包含的头文件

HEADERS += include/painter.h

工程中包含的.ui设计文件

FORMS += forms/painter.ui

工程中包含的源文件

SOURCES += sources/main.cpp sources/painter.cpp

工程中包含的资源文件

RESOURCES += qrc/painter.qrc
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
这条语句的含义是,如果QT_MAJOR_VERSION大于4(也就是当前使用的Qt5及更高版本)需要增加widgets模块。如果项目仅需支持Qt5,也可以直接添加“QT += widgets”一句。不过为了保持代码兼容,最好还是按照QtCreator生成的语句编写。

配置信息

CONFIG用来告诉qmake关于应用程序的配置信息。
CONFIG += c++11 //使用c++11的特性比如lambda表达式
在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项更安全。

widget.h 文件:

#ifndef WIDGET_H //防止头文件重复编译
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT  //Q_OBJECT宏,写了这个宏,就支持了QT中的信号和槽机制

public:
    explicit Widget(QWidget *parent = nullptr); //构造函数,parent 初始化为nullptr
    ~Widget(); //析构函数

private:
    Ui::Widget *ui; // 定义ui
};

#endif // WIDGET_H

widget.cpp:

#include "widget.h"
#include "ui_widget.h"
#include <Q>

Widget::Widget(QWidget *parent) : //构造函数
    QWidget(parent), //初始化列表
    ui(new Ui::Widget) //
{
    ui->setupUi(this); //启动ui界面
}

Widget::~Widget()
{
    delete ui;
}

posted @ 2020-02-05 11:37  i0gan  阅读(463)  评论(0编辑  收藏  举报