【Qt】Qt Creator初使用

07-09 1561阅读

目录

一. 创建新项目

二. 认识Qt Creator界面

2.1 main.cpp 代码解释

2.2 mywidget.h 代码解释

2.3 mywidget.cpp 代码解释

2.4 form file —— Forms里的mywidget.ui

2.5 .pro文件

2.6 编译生成的中间文件


Qt Creator是一个跨平台集成开发环境(IDE),专门用于Qt应用程序开发。它提供了设计、编码、测试和部署基于Qt的软件项目所需的工具和功能

Qt的安装可以参看  Qt开发环境配置

【Qt】Qt Creator初使用

一. 创建新项目

1.1 首先,先点击文件,点击新建项目

【Qt】Qt Creator初使用


 1.2 选择创建什么项目;此处选择Qt Widgets Application

【Qt】Qt Creator初使用


 1.3 选择项目路径,注意不能带中文!!!

【Qt】Qt Creator初使用


1.4 选择构建工具:通常选择qmake

【Qt】Qt Creator初使用

Qt的构建工具有三种可供选择。

构建系统,通过Qt写的程序,涉及到一系列的“元编程”技术,通过代码生成代码。Qt框架在编译时,会自动先调用一系列生成工具,基于我们自己写的代码,生成一系列的其他的C++代码,最终编译的代码,也是最后生成的这些代码

qmake用于自动生成makefile文件,支持跨平台构建,文件后缀为.pro
CMake跨平台构建工具,其本身不是编译器,而是生成一个让编译器能读懂编译流程的文件工具。让CMake自动生成构建系统,例如Makefile和Visual Studio项目文件
Qbs号称新一代的构建工具,从项目文件的高级项目描述中生成一个正确的依赖表

因为Qbs使用的人少,Qt官方弃用了Qbs;对于Qt用户来说,qmake使用最广泛,CMake次之


1.5 填写类信息设置界面:选择基类和勾选ui界面文件(form file,该文件很关键,后续会着重讲解)

类名和Header file,Source file尽量保持一直,可读性好

【Qt】Qt Creator初使用

对于基类,目前有三种基类

QMainWindow主窗口类,一般用于较为复杂的应用程序,除了中英客户区界面,还包括菜单栏、工具栏、状态栏以及多个可停靠的工具对话框等
QWidget最简单、最基本的窗体程序,里面可以放置多个控件实现程序功能
QDialog基于对话框的程序,对话框一般用于弹窗,也可以用于主界面显示。对话框是从QWidget继续继承而来的,并丰富了一些功能,如模态显示和返回值等

上述三个类之间的关系如下图:

【Qt】Qt Creator初使用


1.6 选择语言和翻译文件:支持国际化问题,暂时不考虑,直接下一步

【Qt】Qt Creator初使用


1.7 选择Qt套件

【Qt】Qt Creator初使用

默认只有一个"Desktop Qt 5.14.2 MinGW 64-bit",如果安装配置了多个Qt套件,可以勾选"Select all kits"

Qt套件是Qt从编译链接到运行环境的全部工具和Qt类库的结合,对于MinGW版本,Qt程序生成和调试,至少需要MinGW中的编译器g++(自动调用链接器)、g++配套的基础库,调试器还有使用MinGW环境编译而成的Qt类库自身。默认情况下,在上面Kit Selection里选中全部套件


1.8 选择版本控制系统:如git(后续可把代码提交到码云或github)

【Qt】Qt Creator初使用

到此,点击完成,一个Qt项目就创建成功了

【Qt】Qt Creator初使用

二. 认识Qt Creator界面

【Qt】Qt Creator初使用

2.1 main.cpp 代码解释

#include "mywidget.h"
#include 
int main(int argc, char *argv[])//main的形参就是命令行参数
{
    //编写一个Qt的图形化界面程序,一定需要有QApplication对象
    QApplication a(argc, argv);
    //在创建项目时选择生成的类
    MyWidget w;
    w.show();//创建一个控件对象并显示;hide方法即为隐藏;都是父类QWidget提供的方法
    return a.exec();//让程序执行起来
}
  • argc是命令行参数的个数,argv保存命令行参数,如./text 777。有两个参数,第一个是./text,第二个是777。所以argc为2,argv分别保存"./text" 和 "777"
  • 在创建项目时,我们选择生成MyWidget类,继承自QWidget,可以使用其包含的属性和提供的方法。show()方法会显示控件,hide()方法会隐藏控件

    2.2 mywidget.h 代码解释

    //防止头文件重复包含
    #ifndef MYWIDGET_H
    #define MYWIDGET_H
    #include //QWidget所需的头文件
    QT_BEGIN_NAMESPACE
    namespace Ui { class MyWidget; }//在Ui命名空间声明我们选择的类
    QT_END_NAMESPACE
    class MyWidget : public QWidget//继承自QWidget
    {
        Q_OBJECT//Qt定义的宏,与"信号"和"槽"机制相关
    public:
        MyWidget(QWidget *parent = nullptr);//将MyWidget挂到"对象树(N叉树)"
        ~MyWidget();
    private:
        Ui::MyWidget *ui;//和form file密切相关
    };
    #endif // MYWIDGET_H
    • Q_OBJECT 是 Qt自定义的宏,其本质是进行文本替换,与Qt核心机制 "信号" 和 "槽" 相关
    • MyWidget继承自QWidget,在其构造函数中,有父类指针,创建的该对象,就可以把该对象挂到 "对象树" 。对象树是一个N叉树
    • Ui::MyWidget *ui 与 form file密切相关

      2.3 mywidget.cpp 代码解释

      #include "mywidget.h"
      #include "ui_mywidget.h"//form file 被 qmake生成的文件
      MyWidget::MyWidget(QWidget *parent)
          : QWidget(parent)//挂接对象树
          , ui(new Ui::MyWidget)
      {
          ui->setupUi(this);//把form file生成的界面和当前widget关联起来
      }
      MyWidget::~MyWidget()
      {
          delete ui;
      }

      mywidget.cpp没啥内容,关键是要弄懂form file是什么

      2.4 form file —— Forms里的mywidget.ui

      当双击"mywidget.ui"后,会调用Qt Designer打开ui文件,展示一个图形化的界面编辑器

      【Qt】Qt Creator初使用

      点击左侧的"编辑"按钮,返回ui文件的内容

      【Qt】Qt Creator初使用

      ui文件的本质是xml格式的文件

      xml和html非常类似,都是使用成对的标签来表示数据

      不同点是xml的标签具体含义可以由程序员自定义,html的标签含义则是固定的,由标准委员会统一约定,所有浏览器都要按照同一套标签解释html文件

      Qt使用xml文件描述程序的界面,进一步的qmake会调用相关的工具,依据这个xml文件生成一些C++代码,从而把完整的界面构造出来

      2.5 .pro文件

      【Qt】Qt Creator初使用

      Qt通过 .pro文件 + qmake 的方式编译项目,其功能类似于编写Linux程序的Makefile

      Qt Creator把编译的细节都封装好了,我们不需要过多关注,只需要点击运行按钮即可

      2.6 编译生成的中间文件

      【Qt】Qt Creator初使用

      右键 .pro文件,选择"在Explorer中显示"。注意:Explorer是文件资源管理器,如果Qt项目在C盘中,可直接使用,否则会找不到"Explorer.exe"。

      也可以直接打开项目所在目录。在项目的上级目录会发现有一个"build-xxxxxx"的目录,其中存放着编译生成的临时文件

      【Qt】Qt Creator初使用

      Makefile由qmake生成。

      【Qt】Qt Creator初使用

      debug文件夹中有着我们编译生成的程序

      【Qt】Qt Creator初使用

      点击lesson1.exe,就会运行程序,其效果和我们在Qt Creator中点击运行按钮相同

      【Qt】Qt Creator初使用

      在build-xxxxx中有一个ui_mywidget.h,由widget.ui xml 生成 的.h文件

      将其拖拽到Qt Creator中

      【Qt】Qt Creator初使用

      可以看到Ui_MyWidget类的实现。

      在mywidget.cpp中有使用(在cpp文件中叫Ui::MyWidget,二者相同),Ui_MyWidget的实现根据xml文件,也就是.pro文件

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]