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博客

相关推荐
计算机毕设定制辅导-无忧学长1 小时前
《基于Java的旧物回收管理系统设计与实现》
java·开发语言
“AI国潮设计-小江”1 小时前
【Python/SDXL实战】潮汕国潮IP视觉落地:普宁美食猫IP & 创意甜品设计(附ComfyUI工作流与商用授权思路)
开发语言·人工智能·python·prompt·aigc
sdm0704271 小时前
仿muduo库实现高并发服务器-下
开发语言·网络·c++·多路转接
爱奥尼欧2 小时前
【Git】远程分支删了本地还在、两个分支历史不相干?两招故障排解
开发语言·git
Java后端的Ai之路2 小时前
Git冲突完整排查与实战:本地修改覆盖报错到成功推送全流程复盘
开发语言·人工智能·git·python·pop
skywalk81632 小时前
AI 中台记录:使用码道基于deepseek harness制作AI数字中台9.14日
开发语言·人工智能·ai中台
CVer儿2 小时前
vs2022配置qt
开发语言·qt
kaixin_learn_qt_ing2 小时前
Qt 打开目录多选对话框
qt
西峰u2 小时前
Java多线程从入门到线程安全
java·开发语言·jvm