Qt 中的项目文件解析和命名规范

news2024/11/25 16:45:28

🐌博主主页:🐌​倔强的大蜗牛🐌​

📚专栏分类:QT
❤️感谢大家点赞👍收藏⭐评论✍️

目录

一、Qt项目文件解析

1、.pro 文件解析

2、widget.h 文件解析

3、main.cpp 文件解析

4、widget.cpp 文件解析

 5、widget.ui 文件解析

二、Qt 编程注意事项

1、Qt 中的命名规范

2、Qt Creator 中的快捷键  

3、使用帮助文档 


一、Qt项目文件解析

1、.pro 文件解析

工程新建好之后,在工程目录列表中有一个后缀为 ".pro" 的文件, ".pro" 文件就是工程文件 (project) ,它是 qmake 自动生成的用于生产 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 //头文件

2、widget.h 文件解析

在Qt中,如果要使用信号与槽(signal 和 slot)的机制就必须加入 Q_OBJECT 宏;

Ui::Widget *ui; 这个指针是用前面声明的 namespace Ui 里的 Widget 类定义的,所以指针 ui 是指向可视化设计的界面,后面要访问界面上的组件,都需要通过这个指针 ui 去访问。

3、main.cpp 文件解析

使用 Qt Creator 新建任意工程之后,main.cpp 文件中都会自动生成如下代码:
#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}
解释:
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 接受并处理用户
和系统的事件并且把它们传递给适当的窗口部件。

4、widget.cpp 文件解析

 widget.cpp 文件是类 Widget 的实现代码,所有在窗体上要实现的功能添加在此文件中;

 5、widget.ui 文件解析

 

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

 

二、Qt 编程注意事项

1、Qt 中的命名规范

  • 类名:首字母大写,单词和单词之间首字母大写;
  • 函数名及变量名:首字母小写,单词和单词之间首字母大写;
  • Qt 偏好驼峰命名法;

2、Qt Creator 中的快捷键  

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

3、使用帮助文档 

打开帮助文档有三种方式. 实际编程中使用哪种都可以. 

(1)光标放到要查询的类名/方法名上, 直接按 F1

(2)Qt Creator 左侧边栏中直接用鼠标单击 "帮助" 按钮:

点击 "帮助" 之后,出现如下图示界面:  

 (3)找到 Qt Creator 的安装路径,在 "bin" 文件夹下找到 assistant.exe,双击打开;

 使用示例:

1、新建项目,在新建的项目中使用Qt 中的 "QpushButton" 控件。
2、打开帮助手册,在 "索引" 里面输入 "QpushButton";
不要使用中文文档!
不要使用中文文档!
不要使用中文文档!
阅读英文文档是每个程序员必备的专业技能必须要练, 不能退缩。Qt 的文档从通俗易懂的角度来说,是技术类文档中非常出类拔萃的。只要大家稍微有点耐心, 基本都能读懂个八九不离十.

本次分享的内容到这里就结束啦!希望大家阅读完可以有所收获。

如果文章有问题可以在评论区留言,蜗牛会认真修改的哦😁

点赞+关注+收藏 

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

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

相关文章

智慧公厕:提升城市管理效率,改善居民生活体验

智慧公厕作为城市基础设施的重要组成部分&#xff0c;正逐渐成为改善城市品质和提升居民生活体验的一项关键措施。通过智能化管理、数字化使用和信息化运行&#xff0c;智慧公厕不仅可以为城市居民带来更舒适便利的使用体验&#xff0c;而且对于城市的高质量发展、宜居性和包容…

解决Django中的UnicodeDecodeError问题

在使用Django进行Web开发时&#xff0c;有时会遇到一些由于编码不一致引起的问题&#xff0c;特别是在处理文件读写操作时。一个常见的错误是UnicodeDecodeError&#xff0c;其表现为gbk codec cant decode byte 0xa6 in position 9737: illegal multibyte sequence。这个问题通…

CSS3如何实现雷达扫描图(动态样式)

动态样式控制雷达扫描和暂停&#xff1a; //html部分&#xff1a; <view class"radar" :style"{--state:animationPlayState}"></view>data部分&#xff1a; animationPlayState: paused, methods: changeStatus(){this.animationPlayState …

在 VS Code 中使用 GitHub Copilot

Code 结合使用。 GitHub Copilot 是什么 GitHub Copilot 是一个可以帮助你更简单、更快速地编写代码的工具&#xff0c;由 GPT-3 提供支持。你只需编写所需代码的描述——例如&#xff0c;编写一个函数来生成一个随机数&#xff0c;或对一个数组进行排序——Copilot 就会为你…

01 Php学习:导学篇

Php是什么&#xff1f; PHP 是服务器端脚本语言。 PHP&#xff08;Hypertext Preprocessor&#xff09;是一种通用开源脚本语言&#xff0c;主要用于服务器端开发。PHP脚本在服务器端执行&#xff0c;生成动态网页内容或执行服务器端任务。PHP可以嵌入到HTML中&#xff0c;也…

供应链领域主题:生产制造关键术语和系统

BOM&#xff08;Bill of Material&#xff09;物料清单 BOM&#xff08;Bill of Material&#xff09;物料清单&#xff0c;是计算机可以识别的产品结构数据文件&#xff0c;也是ERP的主导文件。BOM使系统识别产品结构&#xff0c;也是联系与沟通企业各项业务的纽带。ERP系统中…

服务器 安装1Panel服务器运维管理面板

服务器 安装1Panel服务器运维管理面板 SSH链接服务器安装1Panel 出现此提示时输入目标路径&#xff0c;须以“/”开头&#xff0c;默认&#xff1a;/opt&#xff0c;本例&#xff1a;/www。 出现此提示时输入目标端口&#xff0c;须未被使用的端口&#xff0c;默认&#xff1…

机器人码垛机:科技创新推动物流行业飞跃发展

在数字化、智能化浪潮的推动下&#xff0c;机器人技术已成为推动各行各业转型升级的重要力量。特别是在物流行业&#xff0c;机器人码垛机的应用正逐渐普及&#xff0c;以其高效、精准、节省人力的特点&#xff0c;助力物流行业实现跨越式发展。星派将介绍机器人码垛机如何助力…

RabbitMQ-死信队列常见用法

目录 一、什么是死信 二、什么是死信队列 ​编辑 三、第一种情景&#xff1a;消息被拒绝时 四、第二种场景&#xff1a;. 消费者发生异常&#xff0c;超过重试次数 。 其实spring框架调用的就是 basicNack 五、第三种场景&#xff1a; 消息的Expiration 过期时长或队列TTL…

备考ICA----Istio实验17---TCP流量授权

备考ICA----Istio实验17—TCP流量授权 1. 环境准备 1.1 环境部署 kubectl apply -f <(istioctl kube-inject -f istio/samples/tcp-echo/tcp-echo.yaml) -n kim kubectl apply -f <(istioctl kube-inject -f istio/samples/sleep/sleep.yaml) -n kim1.2 测试环境 检测…

面试算法-154-搜索二维矩阵 II

题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,…

解决 IDEA每次打开新的项目都要重新设置maven问题

目录 一、当前项目设置maven 如下图&#xff1a; 二、设置打开的新项目的maven 如下图&#xff1a;​ 一、当前项目设置maven 对于当前项目我们都知道设置maven的配置要在 File -- Settings -- Build -- Maven 中设置 如下图&#xff1a; 二、设置打开的新项目的maven F…

AWE2024酷开科技智能家居,让生活从此更智能!

随着科技的飞速发展&#xff0c;智能家居已经成为了人们生活中不可或缺的一部分。在这个领域里&#xff0c;酷开科技品类逐渐丰富&#xff0c;在AWE2024展会上展现出耀眼光芒&#xff0c;将全品类智能家电新品集结亮相&#xff01;让人们的生活更加便捷、舒适和智能化。 酷开K…

WPF使用MVVM,将Image中的图片绑定到OpenCVSharp中的Mat类型

看了很多帖子&#xff0c;代码复制过去都是报错的&#xff0c;查看了OpenCVSharp.Extensions的底层&#xff0c;发现用法在WPF中已经进行了更改&#xff0c;原本需要从Mat->Bitmap->BitmapImage&#xff0c;简化成了Mat->BitmapSource这一个过程&#xff0c;所以这也是…

从零开始:一步步学习爬虫技术的实用指南(一)

从零开始&#xff1a;一步步学习爬虫技术的实用指南&#xff08;一&#xff09; Urllib1.什么是互联网爬虫2.爬虫核心3.爬虫的用途4.爬虫的分类4.1 通用爬虫&#xff1a;4.1 聚焦爬虫&#xff1a; 5.反爬手段5.1 User‐Agent&#xff1a;5.2.代理IP5.3.验证码访问5.4.动态加载网…

Triton Server Python 后端优化

接上文 不使用 Docker 构建 Triton 服务器并在 Google Colab 平台上部署 HuggingFace 模型 MultiGPU && Multi Instance Config 追加 instance_group [{count: 4kind: KIND_GPUgpus: [ 0, 1 ]} ]Python Backend Triton 会根据配置信息启动四个实例&#xff0c;…

微服务初始及Eureka注册中心

1&#xff0c;架构演变 单体架构&#xff1a;将所有业务功能集中在一个项目中开发&#xff0c;达成一个包部署 优点&#xff1a;架构简单&#xff0c;部署成本低 缺点&#xff1a;项目耦合度高 分布式架构&#xff1a;根据业务功能对系统进行拆分&#xff0c;每个业务作为独…

2024 年广东省职业院校技能大赛(高职组)“云计算应用”赛项样题 5

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包…

SpringBoot学习笔记二

SpringBoot学习笔记二 1.SpringBoot配置加载顺序1.1 内部配置加载顺序1.2 外部配置加载顺序 2. SpringBoot整合其他框架2.1 SpringBoot整合Test2.2 SpringBoot整合Redis 1.SpringBoot配置加载顺序 1.1 内部配置加载顺序 同理可知&#xff0c;父项目中的confg下的配置优先级最…

web前端框架设计第四课-条件判断与列表渲染

web前端框架设计第四课-条件判断与列表渲染 一.预习笔记 1.条件判断 1-1&#xff1a;v-if指令&#xff1a;根据表达式的值来判断是否输出DOM元素 1-2&#xff1a;template中使用v-if 1-3&#xff1a;v-else 1-4&#xff1a;v-else-if 1-5&#xff1a;v-show&#xff08;不支…