如果想简单了解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博客