Qt初始化工程详解

0. 写在前面为什么想记录这篇博文⁉️

        由于项目原因,需要 重新 使用Qt,距离接触Qt大概过了半年左右,当初也仅仅是接触一下,并没有深究,再次使用,发现对初始化工程十分的陌生,又得花费蛮多时间重新学习,希望通过这篇博文记录起来,加深记忆的同时方便以后复习。写博客的意义其实就是再此!记录📝 和分享👪 !

1. 使用的开发环境

        我目前使用的开发环境是Windows + Qt Creator,当然你也可以使用其他的开发环境,比如Windows + Qt Creator、Linux(Ubuntu) + Qt Creator以及Windows + VS等,这里主要讲的使用Qt Creator开发时项目,由于Qt是跨平台的,不管你是用的是Windows系统还是Linux系统都是一样的。

2.新建初始化工程

        Qt项目构成比较复杂,以工程的结构组成,为了更方便的构建初始化项目,Qt Creator提供一个可视化的新建项目向导,主要包括定义 项目的名称选择项目的存储位置选择Kits 以及 项目继承的基类

        项目的名称以及存储位置没啥好说的,主要解释一下Kit以及项目继承的基类。

2.1 Kit选择

        Kit为构成套件,里面包含的主要是编译工具,比如我的Kit选择只有 MinGW 64-bits图2-1,这个主要是当初安装Qt时勾选的安装组件,我们可以勾选安装更多种类的组件适应不同环境下的开发图2-2,当然这也会占用更多的磁盘空间。

图2-1 新建项目选择Kit界面操作示意图
图2-1 安装Qt时选择Kit界面操作示意图

        MinGW 指的是 Minimalist GNU for Windows , 简约版的Windows平台下使用的GNU套件,包含了编译器和标准库。对于 MSVC 则是Qt为微软(Microsoft,MS)开发的VC编译器,方便Qt可以使用宇宙最强Visual Studio进行Qt的开发,毕竟写C++的开发者大多使用VS,用户基数非常大。

2.2 工程继承的基类

        Qt工程继承的基类有三种:QMainWindow、QWidget以及QDialog。 如何选择继承的基类需要了解这三者的区别:

  • QMainWindow通常被用来做主应用程序界面,因为他提供了菜单条(menuBar)、工具条(maintoolBar)、状态条(statusBar)以及中心显示区(centralWidget),可以适应更复杂的操作要求。
  • QWidget是所有用户界面的基类,我们可以在上面放置基本组件(按键(Button)、文本框(Label)等),QMainWindow的中心显示区就是一个Qwidget。
  • QDialog为对话框基类,对话框通常用来做短期任务的操作界面,通常不用来作主界面。
3. 工程文件简述选择QMainWindow作为工程继承的基类
图3-1工程项目一览
3.1 Demo.pro

        Qt工程中会自动生成一个 .pro 文件, .pro 文件属于项目管理文件,定义了项目的基本信息,利用qmake生成对应的makefile文件,makefile文件是自动化编译脚本,适合用在复杂的工程编译当中,提高编译效率。

# Project created by QtCreator 2020-04-29T12:27:43
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Demo
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
CONFIG += c++11

SOURCES += \
        main.cpp \
        mainwindow.cpp

HEADERS += \
        mainwindow.h

FORMS += \
        mainwindow.ui
###对注视和部分代码进行删减,有利于博文阅读

        这里我们主要关注第一行:

QT       += core gui

        这里主要定义了引用的模块,core gui是必须的而且包含了大部分的内容,为什么这样做?主要是为了提供用户的灵活性,用户可以自行裁剪功能模块,提高编译速度。例如我们要引用Qtchart就需要在这句话下面添加:

QT       += core gui
QT    	 += charts
3.2 MainWindow窗口文件

        在工程项目列表中,我们可以看到 mainwindow.hmainwindow.cpp 以及 mainwindow.ui 三个文件,

mainwindow.h 以及 mainwindow.cpp 主要是对 MainWindow类 相关成员的 定义实现mainwindow.ui 是对窗口的布局文件,是xml文件。

        我们可能会产生一个疑问❓ ,前两者和后者是如何联系起来的。这里是通过引入另一个中间文件实现的: ui_mianwindow.h 。这个中间文件并不出现在工程列表中,是由xml文件生成的,我们也可以看到在 mainwindow.cpp 也有引用该头文件。

  • mainwindow.h、mianwindow.cpp : MainWindow类成员的定义与实现;

  • mainwindow.ui : 布局文件,可视化编辑界面;

  • ui_mainwindow.h : 通过布局文件生成的头文件,包括界面对象成员的定义、创建界面方法的实现以及命名空间的定义。

图3-2 MainWindow窗口文件关系图
3.3 mian主函数

        mian主函数是一个C++程序的入口,包含在 main.cpp 中, main.cpp 中定义了一个 QApplication 以及 MainWindow

  • QApplication : 管理GUI程序的控制流和主要设置,也就说系统的管理中心,比如信号与槽的响应,打开文件的窗口选择以及调色板都是QApplication负责。
  • MainWindow : 生成主窗口,是用户交互式操作的载体。
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值