【Qt】—— 项⽬⽂件解析

目录

(一).pro⽂件解析

(二)widget.h⽂件解析

(三)main.cpp⽂件解析

(四)widget.cpp⽂件解析

(五)widget.ui⽂件解析


(一).pro⽂件解析

⼯程新建好之后,在⼯程⽬录列表中有⼀个后缀为".pro"的⽂件,".pro"⽂件就是⼯程⽂件(project),它是qmake⾃动⽣成的⽤于⽣产makefile的配置⽂件。

  • 如图所⽰:

【解释说明】 

双击进⼊该⽂件,该⽂件的核⼼内容如下:

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

".pro"⽂件的写法如下:

  • 1. 注释:从"#"开始,到这⼀⾏结束。
  • 2. QT+=core gui  //Qt包含的模块Qt5包含的模块.如下图所⽰:

    3. greaterThan(QT_MAJOR_VERSION,4):QT+=widgets这条语句的含义是,如果
    QT_MAJOR_VERSION⼤于4也就是当前使⽤的Qt5及更⾼版本)需要增加widgets模块。如果项⽬仅需⽀持Qt5,也可以直接添加"QT+=widgets"⼀句。不过为了保持代码兼容,最好还是按照QtCreator⽣成的语句编写:
  • 4. 指定⽣成的应⽤程序名:TARGET=QtDemo;
  • 5. TEMPLATE=app //模板。告诉qmake为这个应⽤程序⽣成哪种makefile。下⾯是可供选择的模板:
  • 6. ⼯程中包含的源⽂件:SOURCES+=main.cpp/widget.cpp
  • 7. ⼯程中包含的头⽂件:HEADERS+=widget.h
  • 8. ⼯程中包含的资源⽂件:RESOURCES+=painter.qrc
  • 9. ⼯程中包含的"ui"设计⽂件:FORMS+=widget.ui
  • 10. 配置信息:CONFIG+=c++11(使⽤c++11的特性)CONFIG⽤来告诉qmake关于应⽤程序的配置信息。

(二)widget.h⽂件解析

  • 在Qt中,如果要使⽤信号与槽(signal和slot)的机制就必须加⼊Q_OBJECT宏;
  • Ui::Widget*ui; 这个指针是⽤前⾯声明的namespace Ui⾥的Widget类定义的,所以指针ui是指向可视化设计的界⾯,后⾯要访问界⾯上的组件,都需要通过这个指针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 项目文件解析的全部知识内容了!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/363974.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Sg5032can(晶体振荡器spxo)规格书

SG5032CAN是爱普生推出的一款小体积尺寸5.0x3.2mm石英晶体振蒎器,四脚贴片晶振,输出频率范围为4MHz~72MHz,电源电压1.8V ~ 3.3V,支持CMOS输出,具有超小型,轻薄型,高精度,高性能,高品…

(二)hadoop搭建

1. 下载 访问https://hadoop.apache.org/releases.html查看hadoop最新下载地址 wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz 2.解压 tar zxvf hadoop-3.3.4.tar.gz mv hadoop-3.3.4 /usr/local 3.配置环境变量(新建.sh文件&…

【网站项目】066农家乐信息平台

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

面向对象(基础)---面向对象编程概述、Java语言的基本元素:类和对象

学习面向对象内容的三条主线: ①Java类及类的成员:(重点)属性、方法、构造器;(熟悉)代码块、内部类 ②面向对象的特征:封装、继承、多态、(抽象) ③其他关…

stm32--simulink开发之--timer的学习,硬件输入中断,触发事件,STM32通用定时器之输出比较模式与PWM模式(重要理解)

下面三个模块,一个比一个高级,当然使用是越来越简单 STM32F4xx系列控制器有2个高级控制定时器、10个通用定时器和2个基本定时器(推荐学习) 1,第一个模块:Timer 浅层理解:计数,不停的触发 Starts timer co…

Servlet简述

Servlet是动态web资源开发技术,其实就是一个接口,将来定义Servlet实现类时,都必须实现该接口,并让web服务器运行Servlet 1.快速入门 使用注释配置访问路径在Servlet3.0之后应用,在此之前都是使用xml配置文件来配置的。…

零基础怎么学鸿蒙开发?

对于零基础的学习者来说,掌握鸿蒙开发不仅是迈向新技术的第一步,更是开拓职业道路的重要机遇。随着鸿蒙系统在各行各业的应用逐渐扩展,对于掌握这一项技术的开发人员需求也随之增长。下文将为大家提供针对零基础学习鸿蒙开发的逻辑&#xff0…

粒子群优化算法

PSO算法 粒子群算法(Particle,Swarm Optimization,PSO)由Kennedy和Eberhart于1995年提出,算法模仿鸟群觅食行为对优化问题进行求解。 粒子群算法中每个粒子包含位置和速度两个属性,其中,位置代表了待求问题的一个候选…

2024年最强网络安全学习路线,详细到直接上清华的教材!

关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊,学习网络安全方向通常会有哪些问题 前排提示:文末有CSDN官方认证Python入门资料包! 1、打基础时间太长 学基础花费很长时间,光语言…

mysql 慢查询调优实战

目录 异常现象:进行复现:寻找原因:解决办法:办法一:指定执行索引办法二:先按二级索引里字段排序,再按id排序办法三:取消排序 最终方案:复盘: 异常现象&#x…

基于springboot+vue的校园赛事资讯网站(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

搜维尔科技:【简报】元宇宙数字人赛道,优秀作品《星云时报》赏析

AI 对人们来说是一种新产业,而人们对于它未来会面临的议题仍有许多疑虑,因此我们用新闻报导的方式列举一些有趣且具有可能性的标题,希望能让 大家了解 AI 在未来可能会带来什么问题,以及我们应该采取的态度。 学校: 新…

C++(17)——list的模拟实现

前面的文章中,介绍了,的模拟实现,本篇文章将介绍对于的模拟实现。 目录 1. list的基本结构: 2. list功能实现:尾部插入元素: 3. list迭代器的实现: 4. list功能实现:在任意位置前…

vue2 导入使用vue-codemirror详解

目录 vue2 导入使用vue-codemirror详解1 介绍2 安装使用2.1 安装 vue-codemirror2.2 使用 codemirror2.2.1 引入 3 配置详情3.1 语言模式配置3.2 自动高度设置3.4 主题配置 4 总结 vue2 导入使用vue-codemirror详解 1 介绍 vue-codemirror是一个基于Vue的代码在线编辑器组件&…

【jenkins】主从机制及添加Slave节点操作

一、master-slave 日常构建Jenkins任务中,会经常出现下面的情况: 自动化测试需要消耗大量的 CPU 和内存资源,如果服务器上还有其他的服务,可能会造成卡顿或者宕机这样的情况; Jenkins 平台上除了这个项目&#xff0c…

把成绩私发给家长

与家长保持及时、有效的沟通对于学生的成长至关重要。但有时候,我会选择将学生的成绩私发给家长,而不是在公共场合公布。这样做有以下几个原因。 保护学生的隐私。每个学生都拥有自己的个人信息,这包括学习成绩。在公共场合公布成绩&#xf…

Sqoop数据迁移工具

概述 Apache Sqoop(SQL-to-Hadoop)项目旨在协助RDBMS与Hadoop之间进行高效的大数据交流。用户可以在 Sqoop 的帮助下,轻松地把关系型数据库的数据导入到 Hadoop 与其相关的系统 (如HBase和Hive)中;同时也可以把数据从 Hadoop 系统…

【计算机二级考试C语言】C递归

目录 C 递归 数的阶乘 实例 斐波那契数列 实例 C 递归 递归指的是在函数的定义中使用函数自身的方法。 举个例子: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从…

都 2024 年了!程序员的到底出路在哪里!?继续卷技术?晋升管理层?还是转业?

都 2024 年了!程序员的到底出路在哪里!?继续卷技术?晋升管理层?还是转业? 1)程序员的难处2)程序员专业方向3)大数据3.1.大数据开发涉及到哪些技术3.2.大数据开发涉及到的…

VxTerm:SSH工具中的中文显示和乱码时的相关信息和一些基本的知识

当我们写的程序含有控制台(Console)输出时,如果输入内容包含中文时,我们一般需要知道下面的信息,才能正确的搞清楚怎么处理中文显示的问题: 1、实际程序或文件中的实际编码: Linux下的应用程序和文本文件,…