当前位置: 首页 > news >正文

QT-- 理解项目文件

目录

  • 项目文件解析
    • .pro 文件解析
    • widget.h 文件解析
    • main.cpp 文件解析
    • widget.cpp 文件解析
    • widget.ui 文件解析
  • Qt 编程注意事项
    • Qt Creator 中的快捷键
    • 使用帮助文档

项目文件解析

.pro 文件解析

工程新建好之后,在工程目录列表中有⼀个后缀为 “.pro” 的文件, “.pro” 文件就是工程文件(project),它是 qmake(创建项目时选择的QT自动构建工具) 自动生成的用于生产 makefile 的配置文件。如图所示:
在这里插入图片描述
双击该文件可以查看内容。

QT += core gui // Qt 包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //⼤于 Qt4 版本才包含 widget 模块
TARGET = QtFirst //应⽤程序名⽣成的 .exe 程序名称
TEMPLATE = app //模板类型,应⽤程序模板
SOURCES += main.cpp\ //源⽂件
widget.cpp //源⽂件
HEADERS += widget.h //头⽂件

.pro" 文件的写法如下

  1. 注释:从 “#” 开始,到这一行结束。
  2. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 这条语句的含义是,如果
    QT_MAJOR_VERSION 大于 4 也就是当前使用的 Qt5 及更高版本) 需要增加 widgets 模块。如果项目仅需支持 Qt5 , 也可以直接添加 "QT += widgets" ⼀句。不过为了保持代码兼容 ,最好还是按照 QtCreator 生成的语句编写。
  3. 指定生成的应用程序名:TARGET = QtDemo
  4. TEMPLATE = app //模板。告诉 qmake 为这个应用程序生成哪种 makefile。下面是可供选择的模板:
    ⚫ app:建立⼀个应⽤程序的 makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
    ⚫ lib :建立⼀个库的 makefile。
    ⚫ vcapp:建立⼀个应用程序的 VisualStudio 项目文件。
    ⚫ vclib: 建立⼀个库的 VisualStudio 项目文件。
    ⚫ subdirs:这是⼀个特殊的模板,它可以创建⼀个能够进入特定幕录的 makefile 并且为它调用make 的 makefile。
  5. 工程中包含的源文件:SOURCES += main.cpp/widget.cpp
  6. 工程中包含的头文件:HEADERS += widget.h
  7. 工程中包含的资源文件:RESOURCES += painter.qrc
  8. 工程中包含的 “ui” 设计文件:FORMS += widget.ui
  9. 配置信息:CONFIG += c++11 (使⽤ c++11 的特性) CONFIG 用来告诉 qmake 关于应用程序的配置信息。

widget.h 文件解析

在Qt中,如果要使用信号与槽(signal 和 slot)的机制 就必须加入 Q_OBJECT 宏;
Ui::Widget *ui; 这个指针是用前面声明的 namespace Ui 里的 Widget 类定义的,所以指针 ui 是指向可视化设计的界面,后面要访问界面上的组件,都需要通过这个指针 ui 去访问。

//ui_widget.h文件中
class Ui_Widget
{
public:void setupUi(QWidget *Widget){if (Widget->objectName().isEmpty())Widget->setObjectName(QString::fromUtf8("Widget"));Widget->resize(800, 600);retranslateUi(Widget);QMetaObject::connectSlotsByName(Widget);} // setupUivoid retranslateUi(QWidget *Widget){Widget->setWindowTitle(QCoreApplication::translate("Widget", "Widget", nullptr));} // retranslateUi};namespace Ui {class Widget: public Ui_Widget {};
} // namespace Ui

在这里插入图片描述

main.cpp 文件解析

使用Qt Creator 新建任意工程之后,main.cpp 文件中都会自动生成如下代码:
在这里插入图片描述
解释:

  1. Qt 系统提供的标准类名 声明头文件没有 .h 后缀;
  2. Qt ⼀个类对应⼀个头文件,类名 就是 头文件名;
  3. QApplication 为应用程序类;QApplication a;(a为应用程序对象,有且仅有⼀个。)
    ⚫ QApplication 管理图形用户界⾯应用程序的控制流和主要设置。
    ⚫ QApplication 是 Qt 的整个后台管理的命脉。它包含主事件循环,在其中来自窗口系统和其它资源的所有事件处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。
    ⚫ 对于任何⼀个使⽤ Qt 的图形⽤⼾界⾯应⽤程序,都正好存在⼀个 QApplication 对象,而不论这个应⽤程序在同⼀时间内是不是有 0、1、2 或更多个窗口。
  4. myWidget w; //实例化窗口对象
  5. w.show(); //调用show函数显示窗口
  6. a.exec() :程序进入消息循环,等待对用户输入进行响应。这里 main()把控制权转交给Qt,Qt 完成事件处理工作,当应用程序退出的时候 exec() 的值就会返回。在 exec() 中,Qt 接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。

widget.cpp 文件解析

widget.cpp 文件是类 Widget 的实现代码,所有在窗体上要实现的功能添加在此文件中;
在这里插入图片描述

widget.ui 文件解析

widget.ui 是窗体界面定义文件,是⼀个 XML 文件,定义了窗口上的所有组件的属性设置、布局,及其信号与槽函数的关联等。⽤ UI 设计器可视化设计的界⾯都由 Qt 自动解析,并以 XML 文件的形式保存下来。在设计界⾯时,只需在 UI 设计器里进行可视化设计即可,而不用管 widget.ui 文件是怎么生成的。
最终,QT的整体的执行流程如下:
在这里插入图片描述

Qt 编程注意事项

Qt Creator 中的快捷键

• 注释:ctrl + /
• 运行:ctrl + R
• 编译:ctrl + B
• 字体缩放:ctrl + ⿏标滑轮
• 查找:ctrl + F
• 整行移动:ctrl + shift + ⬆/⬇
• 帮助文档:F1
• 自动对齐:ctrl + i;
• 同名之间的 .h 和 .cpp 的切换:F4
• ⽣成函数声明的对应定义: alt + enter

使用帮助文档

打开帮助文档有三种方式. 实际编程中使用哪种都可以.
1、光标放到要查询的类名/方法名上, 直接按 F1
2、Qt Creator 左侧边栏中直接用鼠标单击 “帮助” 按钮:
在这里插入图片描述
在这里插入图片描述

3、找到 Qt Creator 的安装路径,在 “bin” 文件夹下找到 assistant.exe,双击打开;
在这里插入图片描述
例如查找QPushButton控件:
在这里插入图片描述

http://www.dtcms.com/a/597911.html

相关文章:

  • app外包网站网站建设是固定资产吗
  • MySQL核心知识点梳理
  • 天长做网站的电子商务网站基础建设
  • 【论文阅读】Hypercomplex Prompt-aware Multimodal Recommendation
  • 邵阳优秀网站建设有什么网站可以做数学题
  • Linux 内存管理 (4):buddy 管理系统的建立
  • 华为、思科、锐捷、华三定时备份配置命令对照表
  • 网站的404如何做湖北做网站的
  • C# 桌面框架与 Qt 对比分析
  • 更新网站要怎么做呢聊天软件
  • 自己开一个网站怎么赚钱广州互联网公司有哪些
  • MATLAB实现图像菲涅尔衍射
  • Linux开源代码汇总
  • stable-diffusion安装EasyPhoto启动报错解决
  • 做网站标题业之峰装饰官网
  • 做网站挂广告赚多少钱wordpress布局主题
  • PCB之电源完整性之电源网络的PDN仿真CST---08
  • AXI-5.3.1 Memory type requirements
  • Redis vs MongoDB:内存字典与文档库对决
  • 长沙手机网站首页设计公司淮南网络宾馆
  • Python应用指南:利用GET请求获取微博小时热搜榜
  • ROS2 Action 通信详解:从自定义消息到 Server/Client 实现(附 MoveIt! 联动示例)
  • 个人建什么网站最赚钱智慧团建网站登录平台pc端
  • 使用新版本cpu编译vLLM cpu端(编译完成,但是SCNet公网转发8000端口后,连不上)
  • 双浩建设网站aspnet网站开发pdf
  • 云南网站制作公司在线生成短链接
  • 上海企业网站制作报价燕郊网站建设
  • 东航数科开源软件治理体系的建设实践”荣获OSCAR开源+安全及风险治理案例
  • 查企业免费的网站郑州同济医院妇科怎么样
  • 基于SAM2的眼动数据跟踪2.1——修正目标消失的记录方式