Qt信号和槽、常用函数及绘图(sail).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Qt信号和槽、常用函数及绘图(sail)

Qt信号和槽、常用函数及绘图 学习目标 信号和槽 信号和槽的基本实现语句(掌握、重点) 信号和槽的连接规则(掌握、重点) 信号和槽的参数匹配规则(掌握、重点) 常用函数 QWidget等类常用函数(熟悉) 绘图 个性化图形绘制方法(掌握、重点) 常用QPainter类函数(熟悉) QPainter类实现个性化程序的方案(了解) 学习目标 信号和槽 信号和槽的基本实现语句(掌握、重点) 信号和槽的连接规则(掌握、重点) 信号和槽的参数匹配规则(掌握、重点) 常用函数 QWidget等类常用函数(熟悉) 绘图 个性化图形绘制方法(掌握、重点) 常用QPainter类函数(熟悉) QPainter类实现个性化程序的方案(了解) 问题的提出 例子的窗体中,点击“hide”或“show”按钮,为何窗口能做出相应的响应? 问题的分析 显示功能对应对象的show()函数,隐藏功能对应对应对象的hide()函数 点击按钮后执行该函数即可 问题的解决 使用“信号和槽”机制完成该任务的过程:按下按钮?clicked()信号产生?槽函数hide()被调用?窗体隐藏 信号 一个特定的标识,当内部发生某些事件或状态改变时能够被“发射” 槽 槽和普通的C++类的成员函数几乎是一样的 唯一不同的是:槽可以和信号连接在一起,当发射这个信号的时候,就会自动调用这个槽 作用 对象之间通信的高级接口 事件出现时,通过发送信号将与之关联的槽函数激活,即执行槽函数代码 程序总结: 信号和槽的连接基本实现语句: QObject::connect(a,SIGNAL(a_signal(int)), b,SLOT(b_slot(int))) Connect是静态成员函数,需要加QObject:: 如果是QObject子类来调用则不用 连接的两个对象需要在连接前已经存在,否则会报错 a_signal和b_slot中只能有参数类型,而非具体的值 一个信号可以连接多个槽 Task 再创建一个label,点击hide按钮或show按钮按钮时两个label能同时显示或隐藏 多个信号可以连接一个槽 Task 在最初程序基础上再创建一个按钮,点两个按钮中任意一个都可以隐藏label 一个信号可以与另外一个信号相连接 Task 连接两个按钮的clicked信号 要把信号成功连接到槽或另一个信号,它们的参数必须具有相同的顺序和类型 注:参数匹配的检查使用strcmp函数,所以类型必须严格一致。如string和const string就不匹配 例外:信号参数比槽多,多余参数被忽略 如果类型不匹配,或信号和槽不存在,编译时不会报错,运行时会有警告 练习1: 使用滑块控制LCD上的数字发生变化 练习2: 使用按钮控制动画的暂停和播放 在designer中创建一个按钮,一个标签 选择“编辑/信号和槽” 拖动连接按钮和标签,弹出信号和槽选择对话框,观察有哪些信号和槽 窗体/预览,查看效果 问题的提出 之前是使用Qt类中已定义的信号和槽,如果是自己定义实现的类,如何加入信号和槽机制,实现自己想要的功能? 问题的分析 声明自定义的信号,直接使用,无需实现 声明自定义的槽,跟类成员函数一样实现 问题的解决 声明时分别加入slots和signals关键字即可 使用信号时: emit my_order(angle) 类的声明开始处加入Q_OBJECT宏,标准C++不支持,Qt通过moc(Meta Object Compiler)工具自动将其转为C++代码 槽函数和普通C++类成员函数一样实现,但是当做真正的槽使用的时候访问权限的定义没有任何效果 信号只需声明无需实现,定义的访问权限没有意义 必须把类定义从实现文件中分离出来并放到头文件中。 程序总结: 自定义的类一般可以从QWidget类继承 信号和槽都是类的成员函数 自定义槽加关键字slots 自定义信号加关键字signals 使用自定义信号: emit my_signal(参数列表) 练习1: 用两个按钮分别控制动画的暂停和继续播放 练习2: 创建一个按钮和LCD,每次点击按钮,LCD上的数字值加1 练习3: 做一个简单的猜数字游戏。内部规则等独立为一个类,该类的构造函数中随机产生目标值,有槽函数接收用户猜测的数字,发信号表明猜测的结果 学习目标 信号和槽 信号和槽的基本实现语句(掌握、重点) 信号和槽的连接规则(掌握、重点) 信号和槽的参数匹配规则(掌握、重点) 常用函数 QWidget等类常用函数(熟悉) 绘图 个性化图形绘制方法(掌握、重点) 常用QPainter类函数(熟悉) QPainter类实现个性化程序的方案(了解) QWidget类:

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档