QT_01 安装、创建项目

QT - 安装、创建项目

1. 概述

1.1 什么是QT

Qt 是一个跨平台的 C++图形用户界面应用程序框架。

它为应用程序开发者提供建立艺术级图形界面所需的所有功能。

它是完全面向对象的,很容易扩展,并且允许真正的组件编程。

1.2 发展史

1991 年 Qt 最早由奇趣科技开发

1996 年 进入商业领域,它也是目前流行的 Linux 桌面环境 KDE 的基础

2008 年 奇趣科技被诺基亚公司收购,Qt 称为诺基亚旗下的编程语言

2012 年 Qt 又被 Digia 公司收购

2014 年 4 月 跨平台的集成开发环境 Qt Creator3.1.0 发布,

同年 5 月 20 日配发了 Qt5.3 正式版,至此 Qt 实现了对 iOS、Android、WP 等各平台的全面支持。

1.3 支持平台

  • 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

1.4 版本

商业版:

  • 为商业软件提供开发,他们提供传统商业软件发行版,并且提供在商业有效期内的免费升级和技术支持服务

开源版:

  • 为了开发自有而设计的开放源码软件,它提供了和商业版本同样的功能,在GNU 通用公共许可下,它是免费的。

1.5 下载

下载地址:

http://www.qt.io/download-open-source/
或者
http://download.qt.io/archive/qt/

1.6 安装

1.6.1 Linux安装

安装:

  1. 将下载到的QTLiunx版本拷贝到ubuntu的tools文件夹下

  2. 终端进入安装包所在的tools文件下

  3. 运行安装的run文件

    命令:sudo ./qt-opensource-linux-x64-5.14.2.run
    输入密码
    
  4. 点击下一步

  5. 注册或登录

  6. 选择安装位置,不要修改

  7. 选择安装的模块

  8. 断网准备安装

  9. 安装

  10. 耐心等待安装结束

配置环境变量:

  1. 进入qt安装路径/opt/Qt5.14.2A/5.14.2/gcc_64/bin,其中有qmake文件

  2. 打开bashrc文件,配置环境变量

    sudo vi ~/.bashrc
    
  3. 将 export PATH=qmake文件所在路径:$PATH 添加到文件尾部

    如:export PATH=/opt/Qt5.14.2A/5.14.2/gcc_64/bin:$PATH
    
  4. 重启bashrc

    source ~/.bashrc
    
  5. 查询qmake命令是否生效

1.6.2 Windows安装

注意安装路径,其他一路next。

2. 创建QT项目

2.1 创建项目

2.2.1 创建空项目

在不使用集成开发环境的情况下:

步骤: 
	1,创建一个空文件夹
	2,在该文件夹创建xxx.pro文件
	3,在该文件夹中创建main.cpp文件
	4,在该文件夹中创建widget.h文件
	5,在该文件夹中创建widget.cpp文件
	6,编写xxx.pro文件
	7,编写main.cpp
	8,编写widget.h与widget.cpp文件
2.2.2 集成开发环境新建

步骤1:选择新建

  • 方式一
  • 方式二

    点击左上角文件 -- 新建文件或项目
    

步骤2:选择项目类型

步骤3:填写项目名称与存储位置

2.2 项目结构

2.3 运行

2.3.1 windows运行
2.3.2 Linux运行
  1. 将项目拷贝到liunx系统中

  2. 终端进入项目所在文件夹

  3. 使用qmake命令生成makefile文件

    命令:qmake
    
  4. 使用make命令生产可执行文件

    命令: make
    


    注意:如果出现以下问题需要安装libgl1-mesa-dev

    命令:sudo apt-get install libgl1-mesa-dev


5. 运行

   命令:./项目名

2.4 工程.pro文件说明

ini 复制代码
# 添加源信息: core核心源码, gui图形化源码
QT += core gui

# 如果Qt版本大于4,没 QT添加 widgets组件库
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#生成的.exe文件名
TARGET = demo01
#模板类型,app表示应用程序模板
TEMPLATE = app

# 使用 c++11 标准
# g++ -std=c++11
CONFIG += c++11

# Qt 过时警告
DEFINES += QT_DEPRECATED_WARNINGS

# cpp的源文件 【重要】
SOURCES += \main.cpp \widget.cpp

# 头文件 【重要】
HEADERS += \widget.h

# 编译时输出的可执行程序的名称
TARGET = hello

# 部署安装时的选项,qnx是嵌入式的操作系统的名称
qnx: target.path = /tmp/$${TARGET}/bin

# 如果不是qnx,是unix非Android时,安装的目标位置是 /opt/../bin
else: unix:!android: target.path = /opt/$${TARGET}/bin

# 如果target.path路径非空时,则设置安装路径
!isEmpty(target.path): INSTALLS += target

2.5 widget.h文件介绍

2.6 widget.cpp文件介绍

2.7 QT助手

QT的帮助文档

2.8 QT对象模型(对象树)

QObject
    Qwidget
        QMainWindow
        QPushButton
        ...

Qt的对象模型,又称之为对象树, 即子组件与父组件的关系(非父子类关系)。

  • 在 Qt 中创建对象的时候会提供一个 Parent 对象指针, 即为 父组件对象的指针

  • QObject 是以对象树的形式组织起来的:

    • 当你创建一个 QObject 对象时,会看到 QObject 的构造函数接收一个QObject 指针作为参数,这个参数就是 parent,也就是父对象指针。
    • 指定了parent之后, QObject 对象会 自动添加 到其父parent对象的 children() 列表,
    • 当父对象析构的时候,这个列表中的所有对象也会被析构
  • QWidget 是能够在屏幕上显示的一切组件的父类:

    • QWidget 继承自 QObject,因此也继承了这种对象树关系。一个组件自动地成为父组件的一个子组件。
    • 我们也可以自己删除子对象,它们会自动从其父对象列表中删除。
  • Qt 引入对象树的概念,在一定程度上解决了内存问题。

  • 如果 QObject 在栈上创建,Qt 保持同样的行为。正常情况下,这也不会发生什么问题。 但是在局部代码块中创建时,程序运行之后则会动释放,界面上不会显示。

  • 在 Qt 中,尽量在构造的时候就指定 parent 对象,并且大胆在堆上创建。

2.9 QT界面坐标系

相关推荐
过过过呀Glik15 分钟前
在 Ubuntu 上安装 Muduo 网络库的详细指南
linux·c++·ubuntu·boost·muduo
蜀黍@猿1 小时前
【C++ 基础】从C到C++有哪些变化
c++
Am心若依旧4091 小时前
[c++11(二)]Lambda表达式和Function包装器及bind函数
开发语言·c++
zh路西法1 小时前
【C++决策和状态管理】从状态模式,有限状态机,行为树到决策树(一):从电梯出发的状态模式State Pattern
c++·决策树·状态模式
轩辰~1 小时前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
lxyzcm2 小时前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23
蜀黍@猿2 小时前
C/C++基础错题归纳
c++
雨中rain2 小时前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
ALISHENGYA3 小时前
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(实战项目二)
数据结构·c++·算法
arong_xu4 小时前
现代C++锁介绍
c++·多线程·mutex