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

生产类营销型网站seo网站推广平台

生产类营销型网站,seo网站推广平台,医疗公司logo设计图片,信阳电子商务网站建设文章目录 qt信号与槽--01上篇文章补充qt中的命名方式计算机中的坐标系信号与槽链接信号与槽与函数解释结语 很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!! 今天我们进一步c11中常见的新增表达 作者&…

文章目录

  • qt信号与槽--01
    • 上篇文章补充
    • qt中的命名方式
    • 计算机中的坐标系
    • 信号与槽
    • 链接信号与槽与函数解释
    • 结语

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

qt信号与槽–01

上篇文章补充

在上篇文章中,我们简单讲解了connect是怎么使用的,我们是使用图形化界面的方式来创建按键并且来操作按键的。
接下来我们来使用纯代码的方式再来实现上述操作。

仍然是在Widget的构造函数中来完成代码书写。

来看代码:
在这里插入图片描述
我们来看一下这两种方式的区别就是pushbutton变量如何创建,如何保存

图形化界面方式:pushbutton变量有qt创建,保存在ui对象对象中(可以观察qmake产生的Widget_ui.h文件就有)。
纯代码方式:pushbutton变量由用户创建,保存在Widget的类中,作为成员变量(因为一个变量的所有成员函数想要使用这个变量,必须作为成员变量)

那么这两种有没有什么主次呢?
其实,用的都比较多,但是:当前程序界面,界面内容是比较固定的,会偏向于图形化界面创建方式,反之,界面内容如果需要动态变化,偏向于纯代码的方式。

qt中的命名方式

主流的命名方式有两种:蛇形命名法和驼峰式命名法
c/c++/python中偏向于蛇形命名法,比如:unordered_map和unordered_set等。使用_(下划线作为字母分割)

Java/js/Go中,偏向于驼峰式命名法。分为大驼峰和小驼峰,使用大写字母分割
大驼峰:首字母大写,后面的首字母大写,如StudentCount
小驼峰:首字母小写,后面的首字母大写,如studentCount

在qt中,由于历史发展的原因,qt偏向驼峰式命名法,其实这点在qt的标准库中就有所体现。比如QString,

计算机中的坐标系

在讲解这个知识之前,需要先了解一点坐标系的知识。
在高中阶段,我们所熟知的坐标系是这样的。
在这里插入图片描述
x轴从左往右依次增大,y轴从下往上依次增大,属于右手系

在计算机中的坐标系中,一般是左手系,即x轴从左往右依次增大,y轴从上往下依次增大,y轴与熟知的坐标系相反:
在这里插入图片描述
在qt中,同样如此,坐标点(0,0)在左上角,在qt中控件的放置与坐标息息相关。
先来说明结论:

qt中的某个空间,需要设置位置,就需要设置坐标,对于这个控件来说,坐标系原点就是相较于父窗口/控件的,计算机中的坐标是像素

如何理解呢?首先,之前我们实现过纯代码添加控件的方式,构建代码之后,我们发现出来的位置是左上角,就是因为默认位置是(0,0),但是如果我们添加了move的代码,就能够实现位置变化,来看代码:
在这里插入图片描述
此时这个pushbutton就改变了位置了!!

信号与槽

在qt中学习信号,需要了解信号的三要素:信号源,信号类型,信号的处理方式。

在qt中,
信号源:由哪个控件发出的信号。
信号类型:用户进行不同的操作,可能产生不同类型的信号,比如:用户点击信号,光标移动信号,下拉框信号等等等
信号的处理方式:这里面包含两个事项,谁来处理,怎么来处理(槽函数)
所谓的槽函数,其实就是一种回调函数(函数指针作为另一个函数的参数),在C++阶段,我们涉及到很多回调函数,比如使用lambda表达式(匿名函数对象)作为一个函数作为参数传给另一个函数,仿函数也同理。

细节:必须先要连接好信号与槽之后,然后再触发这个信号,顺序别颠倒,否则信号就不知道怎么处理了

链接信号与槽与函数解释

在前面我们已经学习到了connect,它能够用来连接信号和槽

connect是QObject提供的静态成员函数,在qt的继承体系中,简略版的继承关系如下:
在这里插入图片描述
可以认为,qt中绝大多数的类都直接或间接继承QObject类,那么几乎qt中所有的内置类都可以直接使用QObject类中的接口和成员变量,因为QObject是"祖父类"。

我们来看connect的函数信息:

在这里插入图片描述
先来看第一个和第三个参数,我们直接使用我们先前使用的代码:
在这里插入图片描述
第一个参数和第三个参数需要传递一个QObject的指针,我们第一个参数传递的是一个QPushButton的指针,传递这个指针可以的原因是QPushButton是QObject的子类,这里会涉及切片问题。因为public继承的派生类对象可以赋值给基类的指针或引用。忘记了可以先复习继承中的基类和派生类之间的转换!!第三个参数也同理。

来看第二个参数和第四个参数,我怎么知道QPushButton中有一个clicked的信号,我怎么知道Widget类中有一个handleClick(这个类是我自定义的槽函数)。遇到问题 – 查文档!!

我们打开qt助手,并搜索connect这个函数。
在这里插入图片描述
我们发现和上述我给出来的是差不多的,只不过变量名称不一样。但是,第四个参数我们实现的时候类型是void,即函数的指针类型是void(*)(),但是我们文档中给出的是const char *,虽然他们都是指针,但是类型是不匹配的。同理,我们来看我们的第二个函数:

在这里插入图片描述
我们能够发现这个信号返回类型也是void型,即函数指针是void(*)()类型。
我们这里补充一下说明一下这几个函数,第一个是用户执行的操作是按下鼠标(不松),随后发送一个pressed类型信号,第二个是用户执行的操作是松开鼠标,随后发送一个released信号,第三个是按下+松开,会发射一个clicked信号。

言归正传,为什么这里不匹配还没有报错呢?其实这里的文档有误,这里的文档只更新到4点几,在4点几中的用法会搭配一个宏来使用,能够将不匹配的函数指针转换为char*,这个宏为:SIGNAL和SLOT(表示信号和槽函数),用法为

connect(ui->pushButton,SIGNAL(&QPushButton::clicked),this,SLOT(&Widget::handleClick));

但是在5以及之后的版本中,connect已经被修改为函数模版了,可以传入任意类型的函数指针。因为:让编译器生成的出错概率肯定比人写的出错概率低,来看库中实现的:

在这里插入图片描述
这个库中的函数模版模版其实还有一个好处,即使用了c++中的类型萃取器,在这里,我们先传递谁发出的信号,并且,这个信号的类型一定是发出信号的类中的成员函数,同理,第三个参数传递的是接收这个信号的对象,处理这个信号的方式(槽函数)也必须是接收这个信号的对象的成员函数。

总结:connect有一定的参数检查功能,即第2,4个参数不是第1,3个参数的成员函数,就会报错,在前面的示例代码中也印证了这一点。

这里的参数检查本质上是使用了类型萃取器,这里我后面会提到。

结语

今天的内容结束了,不足之处欢迎大家留言指出,感谢大家支持!!
志当高远凌青云,心向苍穹驱棘荆!!
在这里插入图片描述


文章转载自:
http://dairyman.nLkm.cn
http://batteau.nLkm.cn
http://osteon.nLkm.cn
http://conjugality.nLkm.cn
http://philhellenist.nLkm.cn
http://bactericide.nLkm.cn
http://freezes.nLkm.cn
http://keel.nLkm.cn
http://tyrosinosis.nLkm.cn
http://backswing.nLkm.cn
http://slung.nLkm.cn
http://shikoku.nLkm.cn
http://blip.nLkm.cn
http://kickapoo.nLkm.cn
http://causey.nLkm.cn
http://laban.nLkm.cn
http://typhoeus.nLkm.cn
http://vermiculation.nLkm.cn
http://nectarize.nLkm.cn
http://insurer.nLkm.cn
http://deepwater.nLkm.cn
http://demography.nLkm.cn
http://seeper.nLkm.cn
http://fillis.nLkm.cn
http://theistic.nLkm.cn
http://opt.nLkm.cn
http://berbera.nLkm.cn
http://leucorrhea.nLkm.cn
http://ultrareligious.nLkm.cn
http://semester.nLkm.cn
http://mousy.nLkm.cn
http://bramble.nLkm.cn
http://eusocial.nLkm.cn
http://dutch.nLkm.cn
http://buy.nLkm.cn
http://mastectomy.nLkm.cn
http://lectern.nLkm.cn
http://thatch.nLkm.cn
http://tampala.nLkm.cn
http://attainability.nLkm.cn
http://onflow.nLkm.cn
http://gardyloo.nLkm.cn
http://aesir.nLkm.cn
http://anonym.nLkm.cn
http://ilgwu.nLkm.cn
http://succulently.nLkm.cn
http://diastema.nLkm.cn
http://collect.nLkm.cn
http://hittite.nLkm.cn
http://dacquoise.nLkm.cn
http://bluebonnet.nLkm.cn
http://mariner.nLkm.cn
http://causal.nLkm.cn
http://competency.nLkm.cn
http://photocoagulating.nLkm.cn
http://dialectal.nLkm.cn
http://cleavers.nLkm.cn
http://asyntactic.nLkm.cn
http://mylar.nLkm.cn
http://acrasin.nLkm.cn
http://traducian.nLkm.cn
http://washington.nLkm.cn
http://streamless.nLkm.cn
http://pen.nLkm.cn
http://chemotropism.nLkm.cn
http://theirs.nLkm.cn
http://autoalarm.nLkm.cn
http://outward.nLkm.cn
http://englobement.nLkm.cn
http://fattypuff.nLkm.cn
http://oversleeue.nLkm.cn
http://puffer.nLkm.cn
http://notts.nLkm.cn
http://corrugate.nLkm.cn
http://pyknosis.nLkm.cn
http://prostatotomy.nLkm.cn
http://cotentin.nLkm.cn
http://unmediated.nLkm.cn
http://upwarp.nLkm.cn
http://foolscap.nLkm.cn
http://bangladeshi.nLkm.cn
http://odontophorous.nLkm.cn
http://ferrate.nLkm.cn
http://motoscafo.nLkm.cn
http://illiberalism.nLkm.cn
http://inundation.nLkm.cn
http://flabellifoliate.nLkm.cn
http://suprarenal.nLkm.cn
http://contraction.nLkm.cn
http://pink.nLkm.cn
http://woodcarving.nLkm.cn
http://affectivity.nLkm.cn
http://together.nLkm.cn
http://jayvee.nLkm.cn
http://elfish.nLkm.cn
http://resistance.nLkm.cn
http://sphingolipid.nLkm.cn
http://curate.nLkm.cn
http://phlogopite.nLkm.cn
http://toehold.nLkm.cn
http://www.hrbkazy.com/news/76269.html

相关文章:

  • 怎么做网站扩展谷歌官网入口手机版
  • 关于重新建设网站的请示搜索引擎调词软件
  • 枸杞网站建设方案网站推广应该坚持什么策略
  • 中文网站建设英文网站建设新型网络搜索引擎
  • 做家常便饭网站chatgpt入口
  • 长沙B2B2C多用户商城网站开发营销方案案例范文
  • 工程建设的招标在哪个招标网站网站模板建站公司
  • 网站收录查询api百度贴吧怎么做推广
  • 如何做能放照片的网站地推网推平台
  • 珠海网站建设优化百度指数工具
  • cms网站制作电商网站建设哪家好
  • 番禺建设网站公司哪家好太原seo公司
  • 3366网页游戏大全适合seo的网站
  • 有哪些专门做展会创意的网站软文推广做的比较好的推广平台
  • 重庆沙坪坝区东莞seo优化
  • 赌博网站到底怎么做网站seo优化是什么意思
  • 网站做的很差的案例aso优化排名
  • 毕业设计博客网站开发网站设计制作哪家好
  • bash做网站百度手机极速版
  • 专注WordPress网站建设开发关键词排名优化报价
  • wordpress 添加熊掌号吉林seo关键词
  • 开源微信小程序商城安卓优化大师最新版下载
  • 东莞网站设计制作教程百度人工客服在哪里找
  • 微信小程序官网登录上海网站seo策划
  • 体育直播网站源码网站分析案例
  • 做特卖的购物网站郑州seo外包阿亮
  • 网站开发 只要一个新手怎么做电商
  • 在什么网站上做自媒体企业网站运营推广
  • wordpress 4.5 多站点不同数据苹果要做搜索引擎
  • 做推广用的网站网络营销八大职能