Qt:3.项目创建、对象树、乱码问题、Qt命名规则

目录

1.创建项目:

2.Qt可以支持两套基础类:

3.节点的父子关系和对象树:

4.QLabel类:

5.乱码问题:

6.Qt命名规则:


1.创建项目:

  • qt的项目中有一个以.ui为后缀的文件,他本质是一个xml文件。
  • qt中使用F4切换头文件和对应的源文件。
  • 编写一个项目,有两种实现方式,一种是直接拖拽控件到设计页面,另一种通过纯代码的方式创建控件。
  • 代码构造界面:将代码放到widget的构造函数中。
  • 上古时期的qt使用小写风格的头文件声明风格(后面带.h后缀),在1998年C++标准成立。更改了原来的头文件风格,就是首字母大写,不加.h后缀的头文件风格。
  • 控件可以创建在堆上也可以创建在栈上。建议创建在堆上,建立在堆上时,参数要传递当前this指针,可以给新对象指定其父对象。
  • 以QLabel类举例:创建在堆上:QLabel l1=new QLabel(this);创建在栈上:QLabel l2;

2.Qt可以支持两套基础类:

  • Qt 支持 C++ 的标准模板库(STL),并且 Qt 自己也实现了一套封装库,提供了类似的容器类和算法。这些 Qt 自己的类在很多情况下可以替代 STL,提供了一些额外的功能和更好的集成。
  • Qt 的这些容器类通常与 Qt 的信号和槽机制更好地集成,并且在跨平台应用中有更好的兼容性。建议使用这些 Qt 提供的容器类,而不是 STL 容器。
  • Qt版本的基础类在创建时,要大写Q和类的首字母。以vector举例:std::vectot<int>和QVector<int>。

3.节点的父子关系和对象树:

  • 在Qt中,创建在堆上的对象,即使不手动释放,也不会造成内存泄漏。这些对象会在合适的时候被自动释放掉。原因是:对象被挂在了对象树上。
  • 对象树本质是一个多叉树,它可以将前端界面上的各个元素组织起来。
  • 对象树的各个节点之间会存在父子关系,子对象如果认定一个其他对象为父对象,那么父对象被销毁时,它的所有子对象也会自动被销毁。这种机制确保了资源的自动释放,避免了内存泄漏。
  • 在子对象构造时,通过初始化列表将当前this指针设置为父对象的指针,来建立父子关系。
  • 父对象可以有多个子对象,但每个子对象只有一个父对象。
  • 通常,对象树的根节点是顶级窗口对象或应用程序对象,其他对象则是其子节点。

4.QLabel类:

  • QLabel类,使用包含QLable头文件,使用后会在界面左上角显示QLabel对象包含的字符串。
  • 创建在堆上:QLabel l1=new QLabel(this);
  • 创建在栈上:QLabel l2;
  • 创建好QLabel对象后,设置文本:l1->setText();括号中可以传递一个string的匿名对象;也可以直接传递双引号包括的字符串,原因是有一个重载函数来完成隐式类型的转换。

5.乱码问题:

  • 乱码原因:有且只有一个,编码方式不匹配。
  • 在计算机中,一个汉字占几个字节?这和具体的编码方式有关。目前,表示汉字的字符集主要有两种。
  • 其一是GBK,使用两个字节表示一个汉字。一般windows简体中文版就使用GBK为默认字符集。
  • 其二是UTF-8/utf8,变长编码,根据类型一般2~4个字节不等,但是在utf8中一个汉字一般是3个字节.Linux默认的编码格式就是utf8。
  • 如何查看当前源文件是什么编码格式?将源文件使用记事本打开,打开后另存为,在另存为界面就能够看到当前源文件的编码格式。
  • 解决乱码问题:如果要在Qt Creater中解决日志打印乱码问题,就需要统一编码格式,要么改终端打印日志的编码格式,要么改文件的编码格式。但是终端不好改,源文件主流的中文编码方式是utf8,改掉也不太合适。
  • 想要解决Qt中,终端和文件编码不统一导致的乱码问题,有两种方法:
  • 其一是使用QString对象存储字符串后再使用cout打印,QString对象可以自动处理编码格式;
  • 第二种是使用专门的日志打印工具打印日志—qDebug()对象,QDebug相当于一个Qt中的类,使用要包含头文件<QDebug>,可以将它看作是cout来使用,具体使用格式为:qDebug()<<“字符串”;
  • 后续如果要使用打印日志的方式输出一些调试信息,优先使用qDebug() ,它提供了一个开关,可以一次直接关闭所有调试信息的显示。

6.Qt命名规则:

  • Qt命名规则:驼峰命名,使用单词首字母大写来分割多个单词。
  • 小驼峰:首单词首字母小写,主要给变量/函数来命名。
  • 大驼峰:首单词首字母大写,主要给类命名。
  • 总而言之,代码风格具体怎么定,要入乡随俗,需要确保自己写的代码风格和已有代码的代码风格保持一致。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S+叮当猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值