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

gta5购买房产网站正在建设潍坊网站优化

gta5购买房产网站正在建设,潍坊网站优化,广州市建筑业联合会,电子商城建设网站文章目录 qt信号与槽--01上篇文章补充qt中的命名方式计算机中的坐标系信号与槽链接信号与槽与函数解释结语 很高兴和大家见面#xff0c;给生活加点impetus#xff01;#xff01;开启今天的编程之路#xff01;#xff01; 今天我们进一步c11中常见的新增表达 作者… 文章目录 qt信号与槽--01上篇文章补充qt中的命名方式计算机中的坐标系信号与槽链接信号与槽与函数解释结语 很高兴和大家见面给生活加点impetus开启今天的编程之路 今天我们进一步c11中常见的新增表达 作者٩( ‘ω’ )و260 我的专栏qtLinuxC进阶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://www.w-s-a.com/news/731477/

相关文章:

  • 云南大学网站建设解析到网站怎样做
  • 网站维护的要求包括锦溪网站建设
  • 金站网.营销型网站学校安全教育网站建设
  • 临沂市建设局网站公示军事新闻头条2023
  • 购物网网站建设lamp 做网站
  • 做网站网站庄家html5网站开发技术
  • 无锡门户网站制作电话广告设计公司的未来
  • 白云区专业网站建设网页设计模拟试题答案
  • 毕业设计网站代做多少钱制作旅游网站设计概述
  • 网站开发维护运维无人在线电视剧免费观看
  • 电子商务网站建设开题报告展馆网站建设
  • 门户网站建设的背景和意义手机网站前
  • 国内免费视频素材无水印素材网站国家最新消息
  • 襄阳seo站内优化学做网站论坛教程
  • 文明网站建设情况报告wordpress伪静态配置
  • 牙科网站模板个人微信网站建设
  • 厦门公司注册网站dw做简单小说网站
  • 网站建好以后每年都续费么wordpress 仿聚划算
  • 单位网站建设收费标准网上开店铺需要多少钱
  • 灯饰网站需要这么做申请域名的流程
  • 软件下载网站怎么赚钱wordpress减少数据库查询
  • 什么兼职网站可以做视频剪辑常见的推广平台有哪些
  • 网站开发是用html还是jsp设迹官网
  • 查公司信息的网站怎么学wordpress
  • 白银做网站长春一般建一个网站需要多少钱
  • 帮人做钓鱼网站的人网络推广培训职业学校
  • 淘宝客有必须做网站吗网站开发的形式有( )
  • 网站建设:上海珍岛网页版qq空间登录
  • 网站服务器ipteahouse wordpress主题
  • 深州市住房保障和城乡建设局网站做网站公司叫什么