【Qt】—— 项⽬⽂件解析

news2025/4/5 16:18:03

目录

(一).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 项目文件解析的全部知识内容了!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HiveSQL题——array_contains函数

目录 一、原创文章被引用次数 0 问题描述 1 数据准备 2 数据分析 ​编辑 3 小结 二、学生退费人数 0 问题描述 1 数据准备 2 数据分析 3 小结 一、原创文章被引用次数 0 问题描述 求原创文章被引用的次数,注意本题不能用关联的形式求解。 1 数据准备 i…

物联网可视化平台:赋能企业数字化转型

在数字化转型的大潮中,企业面临着如何更好地理解和利用海量数据的挑战。物联网技术的快速发展,为企业提供了一个全新的视角和解决方案。通过物联网可视化平台,企业能够实时监控、分析和展示物联网数据,从而加速数字化转型的进程。…

深度揭秘:代理IP的工作原理及其在网络安全中的关键角色

代理IP的工作原理及其在网络安全中的关键角色是一个相对复杂但非常重要的主题。以下是对这一内容的深度揭秘: 代理IP的工作原理 1. 请求转发 当一个客户端(如浏览器或爬虫程序)使用代理IP时,它不是直接与目标网站通信&#xff0c…

【无刷电机学习】电流采样电路硬件方案

【仅作自学记录,不出于任何商业目的】 目录 AD8210 INA282 INA240 INA199 AD8210 【AD8210数据手册】 在典型应用中,AD8210放大由负载电流通过分流电阻产生的小差分输入电压。AD8210抑制高共模电压(高达65V),并提供接地参考缓冲输出&…

从0搭建react+ts+redux+axios+antd项目

文章目录 一、安装及初始化二、TypeScript配置三、Webpack配置四、Prettier统一编码风格五、使用less六、Antd 安装及使用七、添加Router及配置八、安装axios九、添加redux及使用 本文介绍了如何用creat-react-app脚手架搭建一个react项目的基本结构,同时配置webpac…

书客、米家、柏曼大路灯哪款好?多维度实测对比推荐!

每到寒暑假,各个论坛上出现“大路灯怎么选”的类似话题非常频繁,因为现在的孩子出来上学期间需要读写之外,在寒暑假时也在不断的学习,许多家长关注到孩子学习时的光线问题,担心影响到孩子的视力状况,都纷纷…

Java的Mysql使用

Java的Mysql使用 说明 通过Java的方式连接Mysql中的数据库,并对数据库中的数据进行增加 查询操作 ​ 使用Mysql所提供的第三方库中的类(Mysql的API) 对其进行操作 ​ 将Mysql Jar包添加到lib目录后,就可以使用其中的类对其Mysql数据库进行操作 Mysq…

代码随想录算法训练营第五十九天|503.下一个更大元素II 、42. 接雨水

代码随想录算法训练营第五十九天|503.下一个更大元素II 、42. 接雨水 下一个更大元素II 503.下一个更大元素II 文章讲解:https://programmercarl.com/0503.%E4%B8%8B%E4%B8%80%E4%B8%AA%E6%9B%B4%E5%A4%A7%E5%85%83%E7%B4%A0II.html 题目链接:https://…

2024年美赛 (C题MCM)| 温网积分 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 让我们来看看美赛的C题! 完整内容可以在文章末尾领…

2024美赛数学建模F题思路分析 - 减少非法野生动物贸易

1 赛题 问题F:减少非法野生动物贸易 非法的野生动物贸易会对我们的环境产生负面影响,并威胁到全球的生物多样性。据估计,它每年涉及高达265亿美元,被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目,…

服务器C盘突然满了,是什么问题

随着时代的发展、互联网的普及,加上近几年云计算服务的诞生以及大规模普及,对于服务器的使用目前是非常普遍的,用户运维的主要对象一般也主要是服务器方面。在日常使用服务器的过程中,我们也会遇到各式各样的问题。最近就有遇到用…

SpringBoot RestTemplate 设置挡板

项目结构 代码 BaffleConfig /*** Description 记录配置信息* Author wjx* Date 2024/2/1 14:47**/ public interface BaffleConfig {// 是否开启挡板的开关public static boolean SWITCH true;// 文件根目录public static String ROOT_PATH "D:\\TIS\\mock";// …

Attack Lab:Phase1~Phase5【缓冲区溢出实验】

注:本实验所用文件不是csapp官网给出的,是学校下发的。可以参考我的思路。 phase 1 本阶段目标是使getbuf调用结束后,控制权交给touch1函数。 则我们要知道两件事:一是缓冲区大小,二是touch1在虚拟内存中的位置。 用…

如何取消隐藏Excel中的行?这里提供详细步骤

取消隐藏Microsoft Excel电子表格中的所有行就像按下键盘快捷键或使用功能区上的按钮一样简单。我们将向你展示如何操作。 如何使用快捷方式取消隐藏Excel中的所有行 若要在电子表格中显示隐藏行,请使用Microsoft Excel启动电子表格。然后,访问包含隐藏…

P1083 [NOIP2012 提高组] 借教室

P1083 [NOIP2012 提高组] 借教室 题目描述 在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。 面对海…

【项目日记(七)】第三层: 页缓存的具体实现(上)

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:项目日记-高并发内存池⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你做项目   🔝🔝 开发环境: Visual Studio 2022 项目日…

Armv8-M的TrustZone技术之在安全状态和非安全状态之间切换

Armv8-M安全扩展允许在安全和非安全软件之间直接调用。 Armv8-M处理器提供了几条指令来处理状态转换: 下图显示了安全状态转换。 如果入口点的第一条指令是SG且位于非安全可调用内存位置中,则允许从非安全到安全软件的直接API函数调用。 当非安全程序调用安全API时,API通过…

Linux系统管理和Shell脚本笔试题

1、写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行;(2) 在非空行前面加一个"AAA",在行尾加一个"BBB",即将内容为11111的一行改为:AAA11111BBB #写入内…

JavaWeb前端——HTML/CSS

HTML/CSS概述 HTML:学习标签,CSS:学习样式 HTML 1. 不区分大小写。 2. 属性可以使用单引号/双引号 3. 在记事本/编辑器中编写html语言,通过浏览器解析渲染语言 4. 语法结构松散(编写时要尽量严谨) VSc…

github请求超时解决方法

github请求超时解决办法 我使用windows执行如下git命令,提示超时 git clone xxxxx命令行提示如下: Failed to connect to github.com port 443: Timed out问题排查 可我Chrome可以正常访问github甚至ChatGPT,但是为什么在命令行里面却无法访问&#…