当前位置: 首页 > news >正文

东莞商城网站开发广州优化seo

东莞商城网站开发,广州优化seo,章丘哪里有建设网站的,合肥平面设计公司文章目录 qt初识--02对象树内存泄漏问题及其验证乱码的解释以及解决方案小结通过按钮实现hello world结语 很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!! 今天我们进一步c11中常见的新增表达 作者&#…

文章目录

  • qt初识--02
    • 对象树
    • 内存泄漏问题及其验证
    • 乱码的解释以及解决方案
    • 小结
    • 通过按钮实现hello world
    • 结语

很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!!
在这里插入图片描述
今天我们进一步c++11中常见的新增表达
作者:٩( ‘ω’ )و260
我的专栏:qt,Linux,C++进阶,C++初阶,数据结构初阶,题海探骊,c语言
欢迎点赞,关注!!

qt初识–02

对象树

对象树在qt中的作用:使用对象树,将图形化界面上的内容组织起来,是为了能够在合适的时机,将这些对象统一释放

这个合适的时机具体是什么时候?就是在图形化面板关闭的时候!!
那么我们需要如何将对象挂到树上呢?
需要在widget的构造函数中创建控件对象的时候制定父类对象,就成功挂到树上了。
前者我们已经提到了在堆上创建对象和在栈上创建对象的区别:即对象神什么时候销毁。

难道我new对象就一定需要挂到树上吗?
不是的!如果没有挂到树上,就需要手动delete,否则内存泄漏。挂在树上就可以保证和对象树一并销毁了。

在这里插入图片描述

内存泄漏问题及其验证

接下来我们来验证绑定到对象树之后对象树析构,绑定到对象树上的东西也会随之析构:
点击项目->新建项目和文件->c++类->随后创建类名(选择需要继承的文件或者包含的头文件)- >完成

根据这个步骤,需要继承一个QLabel文件,随后创建一个MyLabel的cpp文件,但是在MyLabel.h的头文件中,QLabel找不到,此时需要添加头文件QLabel。
在这里插入图片描述
随后再我们自己创建的这个类中修改构造使变成有参构造
这里添加的是QWidget的指针变量!!
在这里插入图片描述
为什么是添加的这个呢?
在这里插入图片描述
我们来看main函数中的这个代码,其中创建了一个w对象,此时可以理解为就是图形化界面的对象,然后下面又调用了.show(),让这个图形化界面给显示出来。所以:我们要绑定的对象树就是这个w对象,类型是Widget,而Widget是继承自QWidget的。所以需要传QWidget的指针

此时,我们再去修改函数定义:
我们直接使用alt+enter直接可以跳转对应的cpp文件(快捷键方式)

在这里插入图片描述

需要明白:为什么我们要创建这个类,目的就是自定义析构,在析构函数中完成打印销毁这个对象的日志。

接下来来实现析构函数:
在这里插入图片描述
这里我们使用了自己的MyLabel替换Qlabel。
有了这个类,在widget的构造函数中来进行对象树的绑定!!
在这里插入图片描述
我们来看结果:
在这里插入图片描述
我们发现,析构确实是析构了,但是出现了乱码,这是什么问题呢?
继续向下看

乱码的解释以及解决方案

首先,请问,中文字符占几个字节?
如果你回答的只有一个数,那肯定是错的。为什么呢?
因为涉及字符编码的问题

现在普遍流行的两种字符编码:一种是gbk编码,一种是utf8编码,gbk编码中,中文占两个字节,在utf8中,中文占三个字节。vs默认是gbk编码,linux默认是utf8编码,实际上,utf8编码更灵活一些,utf8能够表示几乎所有语言都能够和数字对应(类比ascll码:一个数字对应一个字符,但是中文比26个字符多太多了)

在这两种编码方式中,不同汉字有着不同的编码,乱码的本质就是就是编码方式不同
那么是那两者不匹配呢?
其实就是cpp文件与终端不匹配!!
那我们应该如何修改呢?

在qt中,有这样一个类,QString,它能够自动的处理字符编码,而且,不止是QString,qt中也专门为我们提供了一个打印日志的类,也能够帮我们自动的处理字符编码问题,这个类是QDebug。
我们包含这个头文件,然后来看结果:
在这里插入图片描述
首先,这里的qDebug是一个宏,对应会展开,加上左移操作符就能够完成对于日志的打印。

小结

学到这里,我们来总结一下这篇文章和上一篇文章学习了什么

1:认识了QLabel类,能够在图形化界面上打印字符信息,通过setText来设置的。而且该函数的参数是一个QString
2:内存泄漏/文件资源泄露等问题
3:对象树,qt通过对象树,统一来管理图形化界面中的对象,而且,这些对象最好是通过new创建,想要挂到树上,必须调用父类的构造函数(即制定父类对象),如果说没有挂到树上,必须手动释放,否则内存泄漏
4:通过继承qt内置的类,能够达到功能扩展的效果(面向对象的继承,可以理解为就是对现有代码的扩展)
5:乱码问题和字符集(字符集就是数字对应一个字符,如utf8和gbk都是一个字符集)
6:如何在qt中打印日志,使用QDebug,作用是什么?自动处理字符编码问题,使用这个其实是使用了一个宏,同时还能够统一将日志关闭

说明:QDebug能够将打印日志关闭的话,还需要设置一个宏来控制打印信息关闭,这个宏为QT_NO_DEBUG_OUTPUT,具体不用记忆,使用的时候百度一下即可。至于为什么需要关闭打印信息呢?我们调试的打印信息不应该被用户看见。但是一个一个删掉打印信息有可能出错!!

通过按钮实现hello world

前者的QLabel* Label只能够打印字符串,只能够看,接下来我们实现还能够点。
在这里插入图片描述
我们使用push button一个按钮来控制hello world。
我们直接在ui文件中添加上这个push button。仍然是按住pushbutton随后拖拽到图形的编辑区。双击修改其中的文本内容。
在这里插入图片描述
此时我们就能够点击这个按钮了,但是仍然没有什么变化。
如果我们想要改变,我们使用connect函数(接下来信号与槽的知识后面会讲解,这里我们明白如何用即可)。

connect:qt中的connect的作用是qt中内置的QObject这个类提供的静态函数。这个函数的作用是连接信号与槽。

我们来看一下结果
在这里插入图片描述
如果我们想修改一下,来回“跳跃”,只需修改代码即可完成:
在这里插入图片描述
底层我们会使用到connect这个函数,这个函数有四个参数:
第一个参数:谁发出的信号
第二个参数:发出的什么类型的信号
第三个参数:谁来接收信号
第四个参数:怎么来处理这个信号

书写如下:
在这里插入图片描述
那么为什么我们的这个对象叫这个pushButton这个名字呢?
我们来看一下qt desinger的界面:
在这里插入图片描述
我们发现这个对象名(object name)叫做pushButton,而且每次添加控件,都能够保证控件的名字不相同。

前面我们已经提到过,Widget.ui会被qmake处理随后生成ui_widget.h的头文件,我们来看下这个头文件中的内容:
在这里插入图片描述
我们能够发现其中多了一个成员变量pushButton,那么ui是哪里来的呢?
在这里插入图片描述
ui是在widget.h文件中的成员变量,再来看ui_widget.h文件中:
在这里插入图片描述
Widget是继承Ui_Widget,说明Ui_Widget中有的,Widget也有,前面使用Widget定义了ui,所以ui中就有pushButton。

总结:
1:widget.ui文件经过qmake处理过后产生Ui_Widget.h文件,ui_widget自动生成的代码中包含pushButton的名字,这个名字,就是根据控件对象的名字得来的
2:在objectname中,设置成什么值,对应qmake产生的变量就叫什么名字。

结语

今天的文章到此为止,不足之处欢迎留言指出,我们下期再见!!
路漫漫其修远兮,吾将上下而求索!!
在这里插入图片描述

http://www.cadmedia.cn/news/3827.html

相关文章:

  • 网站建设价类型在线培训考试系统
  • 甘肃网站建设推广网络营销方案如何写
  • 建设银行官方网站手机版下载标题优化怎样选关键词
  • 网站建设孝感深圳营销推广引流公司
  • wordpress迁移discuzseo查询源码
  • 网站建设在日本百度知道答题赚钱
  • 抚顺市 网站建设百度网盘手机app下载安装
  • 岳阳网站优化公司怎样在百度打广告
  • 博物馆网站建设方案报价网站优化推广费用
  • 租车公司哪家好成都seo技术
  • 郑州网站推广服务深圳竞价托管
  • 罗庄建设局网站澳门seo推广
  • 天津seo方案家庭优化大师免费下载
  • 海淘直邮购物网站网络推广营销
  • 临海高端营销型网站建设地址比较好的免费网站
  • 泉州网站建设公司首选公司哪家好网站推广是干嘛的
  • ie9网站后台编辑器百度经验首页登录官网
  • 娄底建设网站的公司网站批量查询工具
  • 物流网站建设规划书上海网站营销seo电话
  • 互联网设计是做什么的怎么做网站优化
  • 拓者设计吧效果图站内seo是什么意思
  • 苏州自助建站平台怎么在网上做网络营销
  • 网站模板带后台百度有刷排名软件
  • 北京到广州列车时刻表seo的主要工作是什么
  • 莱芜高端网站建设报价微信小程序开发教程
  • 网站建设要程序员吗关键词排名优化
  • 织梦网站建设教程市场营销案例
  • 程序员和做网站那个好找工作公司网站建设
  • 部门网站建设工作总结百度竞价排名广告定价
  • 百度采购网官方网站出词