news 2026/9/16 8:23:08

Qt项目代码解释

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qt项目代码解释

如果想简单了解Qt,可以看下我在学习起始时的博客 Qt背景(简单了解Qt)-CSDN博客

在装好Qt后进入并创建一个项目,我们在什么都不写的情况下Qt中也有一些代码,让我们来了解一下这些代码吧.

main.cpp

argc时命令行参数的个数,argv是命令行参数的内容

但当前Qt下exec和linux系统中的exec没有任何关系!只是名字一样.

weight.h

重点:使用父类就要有对应的头文件 , 头文件名和类名相同.

(之后编写代码时,对于Qt的类直接先拿来用,可以使用就说明间接包了头文件,不能使用在包下对应的头文件)

重点:知道对象树.

(对象树就是之前数据结构中的树,但是这里是n叉树不是二叉).

(form file 就是Qt中使用的一种界面文件,在下面有详细说明)

weight.cpp

qmake是在我们写的代码进行编译时,首先qmake会基于我们写的代码去生成更多的相关的c++代码,然后再进行编译,编译的就是qmake后生成的代码.

form file

重点:form file,在右边文件那里展开forms可以得到这个ui文件.

双击我们的这个ui文件发现直接切换到了设计页.此时Qt Creator会调用Qt Designer 打开ui文件.图形化的界面编辑器.

此时再点击左边的编辑按钮就可以看到ui文件的本体.ui文件本质是xml.

这个格式是xml格式(和html很相似,都是使用成对的标签表示数据)(标签就是<>)

xml里的标签,有哪些标签,表示什么含义,都是程序员自己定义的.这里看到的标签是开发Qt的佬定义的.(这里标签的含义不需要关注)(类似于linux中的自定义应用层协议).

html也采用标签但是html中的标签都是固定的.标签的含义也有专门的委员会规定.浏览器也是按同样的规则解释.

empty.pro(创建项目名.pro)

这个就是Qt项目的工程文件,也是qmake工具构建时的重要依据.(就类似于linux中学的Makefile)

这里qmake和.pro结合一起就相当于Makefile.

一些补充

这里的.h文件就是weight.cpp中所包含的那个头文件.

.h文件中就有ui_widget这个类.

还可以看到一个.exe文件

以上就是Qt代码的简单解释.接下来就让我们来实现下Qt中的第一个代码吧.

自己实现下hello world

首先要弄明白我们在哪里编写代码.一般在我们在设置项目时选定的类的cpp中的类构造函数中编写.

再开始编写时如遇到下图错误就要进行和类名相同的头文件的包含.

我们在屏幕中打出"hello world"就需要用到一个名为label的控件

在Qt中更加推荐在堆上创建的风格.(其实也可以在栈上创建:QLabel label=QLabel(this))

在创建时最好给当前对象指定一个父对象,将它挂到对象树中.(传入的this就是我们所在的构造函数要构造的对象,在main中的Widget w).

要指定空间中的字符要用到setText类方法,可以看到参数是QString类型,当时c/c++库都不太好用,于是Qt就自己造了轮子

后来c++库形成了,我们也可以使用c++中的库(Qt二者都支持)

接下来就可以用"hello world"来进行初始化了.(Qt中的string和c++中string相似,也支持const char*的单参数构造函数隐式类型转换.

之后执行代码就在左上出现hello world了(位置可以改变,我们之后在学习)

这里,new了一个对象,怎么没delete,这样不就出现了内存泄漏吗?

但是这里不会发生泄漏现象

既然谈到了对象树,我们就要好好了解一下.

放个传送门 Qt对象数-CSDN博客

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 8:22:37

UWB室内定位技术全解:从TOF/TDOA原理到系统部署实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/16 8:21:37

Redis 为什么快

Redis 是单线程模型&#xff0c;相较于其他数据库&#xff08;如mysql、oracle、sql server&#xff09;为什么效率那么高&#xff0c;速度那么快呢1、redis 访问内存&#xff0c;数据库则是访问硬盘2、redis 的核心功能比数据库更简单&#xff0c;数据库对于数据的插入删除查询…

作者头像 李华
网站建设 2026/9/16 8:21:27

多态知识点总结

多态 1.多态的概念&#xff1a; 通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个⾏为&#xff0c;当不同的对象去完成时会产⽣出不同的状态。 2.Animal 中的 eat 方法&#xff0c;Cat 子类和 Dog 子类都能调用 eat 方法。 3.例&#xff1a; public class An…

作者头像 李华
网站建设 2026/9/16 8:20:26

CRM+通信一体化:桌面端客户管理系统的架构设计与落地实践

1. 从“电话打到哪、客户跟到哪”的混乱说起&#xff1a;DeskcommCRM 立项的真实理由做了七八年企业服务类系统的研发&#xff0c;我的一个判断是&#xff1a;天天喊数字化转型的传统销售团队&#xff0c;普遍卡在同一个瓶颈上——业务数据在浏览器里&#xff0c;沟通记录在电话…

作者头像 李华
网站建设 2026/9/16 8:19:47

【VR】【Unity】交互别堆脚本:先按「抓—走—放—转」四层搭

文章目录 组件越加越多,先别急着补脚本 抓:先分清谁抓、谁能被抓 走:传送、连续移动、摆臂,要分开看 放:松开手,不等于事情结束 转:门、抽屉和按钮,都有自己的运动边界 怎么用这张地图:先找第一个失败的动作 实用总结 组件越加越多,先别急着补脚本 做 Unity VR 交互…

作者头像 李华