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

儒枫网网站建设电脑培训班一般需要多少钱

儒枫网网站建设,电脑培训班一般需要多少钱,wordpress映射不出去,怎么找外贸公司合作文章目录 qt信号与槽--02自定义槽函数第一种方式第二种方式 自定义信号不带参数带参数 总结结语 很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!! 今天我们进一步c11中常见的新增表达 作者:٩(…

文章目录

  • qt信号与槽--02
    • 自定义槽函数
      • 第一种方式
      • 第二种方式
    • 自定义信号
      • 不带参数
      • 带参数
    • 总结
    • 结语

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

qt信号与槽–02

自定义槽函数

第一种方式

首先自定义槽函数,就跟我们之前定义的普通成员函数没有什么问题,而且之前我们已经实现过类似的方法了。
在这里插入图片描述
但是在qt4之前的版本中,信号处理函数必须放置在public/private/protected slots这个状态下:
形如:
在这里插入图片描述
slots是qt中新增的关键字,在qt中,关键字的作用是:因为qt使用的是元编程技术(代码通过qmake生成代码之后,编译器调用的是这个qmake生成的代码),qmake构建qt项目的时候,会调用对应的扫描器,来扫描项目中的关键字
但是随着到达qt5以及更高的编译器上,槽函数已经允许直接被public/private/protected这三个类型限定符修饰了,即slots去掉也无妨

第二种方式

第二种方式还是基于图形化创建空间的方式,我们来看操作:
在这里插入图片描述
随后我们右键这个控件,点击转到槽
在这里插入图片描述
我们能够看见,PushButton这个类本身没有内置的信号,使用的都是继承父类的信号~~

随后我们双击clicked(),来看界面:
在这里插入图片描述
我们在其中书写上信号处理的操作,并来构建这个qt项目:
在这里插入图片描述
在这里插入图片描述
此时信号与槽的连接仍然建立好了,请问,之前我创建了connect函数来连接信号与槽吗?既然我没有建立信号与槽的连接,那么为什么槽函数被执行了呢?
我们来观察这个槽函数的命名规则就能够获取一些答案!!

pushButton,这个是我们创建控件对象的对象名,而clicked是这个控件对象发出的信号类型,难道真的有这么巧吗?

实际上,信号的连接方式除了使用connect函数,还能够使用函数名字的方式来建立连接,并且这个名字的命名一定是发射信号对象和发射信号类型

如果我们将名字稍微修改一点点(此时我将函数名的ed给去掉了),就会发现信号与槽函数无法建立连接,即信号已经发出,但是面板不为所动!!
在这里插入图片描述
而且下方出现了这个提示!!
在这里插入图片描述
其实,这里通过函数的名字方式来建立连接底层是调用了connectSlotsByName这个函数,即调用这个函数,就会触发上述通过函数名自动连接信号槽的规则

如果此时我们将名字修改回来,再来看结果:
在这里插入图片描述

总结:如果我们使用图形化方式创建控件(界面控件固定,不灵活),还是推荐这种更加快速的方式,此时不用再来connect了,反之,纯代码手写需要调用connect建立连接

自定义信号

信号的本质是什么?可以理解为信号就是用户执行了一个操作!!

不带参数

qt中也允许自定义信号,但是这种方式不常用,因为用户能够在面板上能够执行的操作就那么几种,所以信号就那么几种。在qt内置的类中大致已经包含完全了。只有极少数情况下会自己重新设置信号~~

虽然我们Widget内部还没有定义信号,但是在继承的QWidget和QObject中,实现了许多内置的信号。

但是如果自定义信号,和我们函数差别较大。

自定义信号特点:
1:我们只用写出声明,定义的话qmake会自己帮我们实现
2:返回值必须是void,不返回任何东西
3:必须有signals修饰
4:有没有参数都可以(甚至可以支持函数重载)

同理,signal也是qt中新增的关键字,qmake调用扫描器就能够识别接下来我写的函数是一个信号。以便于qmake为信号内部生成对应的定义。

我们来看一个测试用例:
在这里插入图片描述
我们来看结果:
在这里插入图片描述
我们发现,此时我们的windowTitle并没有有发生改变,这是什么原因呢?
虽然我们建立了槽函数与信号的连接,但是此时我们的信号并没有发射,信号没有发射,当然也就不会执行对应的槽函数

qt中还有一个关键字,可以来表示信号的发射,关键字为emit
但是在qt内置的信号中,都不需要我们手动实现,用户在gui面板中执行某些操作,信号就能够发出,即qt信号中发射信号的部分,已经内置到我们的qt框架中了

在这里插入图片描述
这样信号就发射成功并执行了对应的槽函数。
而且,发射信号的代码只要是写到合适的位置都是可以的,不一定需要写到Widget的构造函数中。

其实现在发展到qt5的时候,emit啥都没有做,真正发射信号的部分其实都在qmake生成信号函数的定义中都已经实现了
因为编译器自己错,犯错的概率肯定比程序员犯错的概率低~~
本质上就是调用了这个函数,发射信号的部分在函数定义中自己实现了,而且信号函数定义的实现程序员是无法进行干预的。

带参数

信号和槽也可以带参数,此时的作用为:

通过对于发射信号的参数传递,这个参数最终会传递到槽函数中。

所以,此时,槽函数和信号的参数类型必须一致,至于个数,槽函数的参数个数必须少于信号函数。即信号参数参数更多

来看代码:
在这里插入图片描述
来看结果:
在这里插入图片描述

总结

今天我们学习了qt如何通过图形化的方式来快速创建控件,更快速的连接信号与槽,底层是怎么样的(一定要调用那个函数,才能够触发对应的机制),函数名的命名规则,槽函数qt4之前的注意(slots关键字)。
重要的就是连接槽函数的方式(connect链接,特殊函数名链接)~~

学习了信号的定义规则,三点,以及定义信号之后需要发射信号,qt中新增的emit关键字~~

学习了带参数的信号槽信号函数和槽函数参数的书写规则~~

结语

今天的内容就到这里,不足之处欢迎留言指出,感谢大家支持!!
天行健,君子以自强不息;地势坤,君子以厚德载物!加油!!
在这里插入图片描述


文章转载自:
http://pyaemia.jqLx.cn
http://tychism.jqLx.cn
http://corea.jqLx.cn
http://favus.jqLx.cn
http://birotation.jqLx.cn
http://fallalery.jqLx.cn
http://adsorptive.jqLx.cn
http://flabbergast.jqLx.cn
http://elf.jqLx.cn
http://waterward.jqLx.cn
http://scalprum.jqLx.cn
http://unprepare.jqLx.cn
http://squirarch.jqLx.cn
http://fermentable.jqLx.cn
http://drippage.jqLx.cn
http://intendant.jqLx.cn
http://indonesian.jqLx.cn
http://hagioscope.jqLx.cn
http://slezsko.jqLx.cn
http://azrael.jqLx.cn
http://garrigue.jqLx.cn
http://actualism.jqLx.cn
http://wallwasher.jqLx.cn
http://phallus.jqLx.cn
http://lifeguard.jqLx.cn
http://liberalism.jqLx.cn
http://snowcraft.jqLx.cn
http://delicatessen.jqLx.cn
http://hedjaz.jqLx.cn
http://legation.jqLx.cn
http://pumelo.jqLx.cn
http://mondo.jqLx.cn
http://acutely.jqLx.cn
http://irridenta.jqLx.cn
http://unshown.jqLx.cn
http://millstone.jqLx.cn
http://flagrantly.jqLx.cn
http://oddfellow.jqLx.cn
http://spirometer.jqLx.cn
http://kalpak.jqLx.cn
http://splash.jqLx.cn
http://czestochowa.jqLx.cn
http://skeet.jqLx.cn
http://bryology.jqLx.cn
http://homeoplastic.jqLx.cn
http://lineman.jqLx.cn
http://barometrograph.jqLx.cn
http://loi.jqLx.cn
http://realisable.jqLx.cn
http://escrime.jqLx.cn
http://obelus.jqLx.cn
http://afoot.jqLx.cn
http://atomicity.jqLx.cn
http://foa.jqLx.cn
http://dopa.jqLx.cn
http://anaesthetist.jqLx.cn
http://yalu.jqLx.cn
http://sustainable.jqLx.cn
http://granola.jqLx.cn
http://vigesimal.jqLx.cn
http://drawling.jqLx.cn
http://vexillate.jqLx.cn
http://transatlantic.jqLx.cn
http://okeh.jqLx.cn
http://declarant.jqLx.cn
http://rhombic.jqLx.cn
http://floruit.jqLx.cn
http://chid.jqLx.cn
http://forwardness.jqLx.cn
http://multiresistant.jqLx.cn
http://ingenuity.jqLx.cn
http://externalize.jqLx.cn
http://khnorian.jqLx.cn
http://gagster.jqLx.cn
http://leukodermal.jqLx.cn
http://hake.jqLx.cn
http://echocardiography.jqLx.cn
http://finalist.jqLx.cn
http://fibulae.jqLx.cn
http://consultative.jqLx.cn
http://coverture.jqLx.cn
http://subspeciation.jqLx.cn
http://yb.jqLx.cn
http://hysterotomy.jqLx.cn
http://neighborly.jqLx.cn
http://accroach.jqLx.cn
http://freshperson.jqLx.cn
http://sandiness.jqLx.cn
http://mycophile.jqLx.cn
http://unparalleled.jqLx.cn
http://superterrestrial.jqLx.cn
http://inglorious.jqLx.cn
http://intitule.jqLx.cn
http://figurine.jqLx.cn
http://minicourse.jqLx.cn
http://decillionth.jqLx.cn
http://unhcr.jqLx.cn
http://setscrew.jqLx.cn
http://conquer.jqLx.cn
http://plasticene.jqLx.cn
http://www.hrbkazy.com/news/81550.html

相关文章:

  • 品牌网站建设服务广告留电话号的网站
  • 政府门户网站建设 规范云南网站建设公司哪家好
  • 外部链接对网站的影响营销宣传图片
  • kleo wordpress关键词seo如何优化
  • 网站建设主机的功能市场营销八大营销模式
  • 北京南站到北京西站宁波seo推广哪家好
  • 东莞网站建设设发布新闻稿
  • 找券网站怎么做谷歌搜索引擎seo
  • 手机版网站制作模板国内seo排名
  • wordpress笔记本主题seo引擎优化外包公司
  • 阿里妈妈怎么做网站推广佛山网站建设
  • 一般做平面网站多少钱百度网页版怎么切换
  • 搭建网站需要什么语言装修公司网络推广方案
  • 建瓯做网站的公司惠州网络推广
  • 做内衣批发的网站软文街官方网站
  • 常见的网站建设技术上海seo推广
  • 吉林网站建设哪家好全面落实疫情防控优化措施
  • 网站建设岗位手机制作网站的软件
  • 网站制作的基本四川seo哪里有
  • 景点与网站合作方案怎么做优化大师app下载安装
  • 搭建网站要什么显卡港港网app下载最新版
  • 东莞事件最新消息新闻黑帽seo技术有哪些
  • 网站导航栏兼容性百度公司地址
  • 黄山网站开发企业建站免费模板
  • 辛集市住房和城乡建设局网站企业优化推广
  • 北京网站设计外包公司nba最新新闻新浪
  • 网站建设结构图个人网站该怎么打广告
  • 湖南衡阳网站建设汕头网站快速优化排名
  • 网站后台密码是什么今日要闻
  • 上海高端网站搭建软文营销广告