Qt信号和槽、常用函数及绘图_第1页
Qt信号和槽、常用函数及绘图_第2页
Qt信号和槽、常用函数及绘图_第3页
Qt信号和槽、常用函数及绘图_第4页
Qt信号和槽、常用函数及绘图_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、12 信号和槽信号和槽的基本实现语句(掌握、重点)信号和槽的连接规则(掌握、重点)信号和槽的参数匹配规则(掌握、重点) 常用函数QWidget等类常用函数(熟悉) 绘图个性化图形绘制方法(掌握、重点)常用QPainter类函数(熟悉)QPainter类实现个性化程序的方案(了解)3 信号和槽信号和槽的基本实现语句(掌握、重点)信号和槽的连接规则(掌握、重点)信号和槽的参数匹配规则(掌握、重点) 常用函数QWidget等类常用函数(熟悉) 绘图个性化图形绘制方法(掌握、重点)常用QPainter类函数(熟悉)QPainter类实现个性化程序的方案(了解)4问题的提出 例子的窗体中,点击“hide

2、”或“show”按钮,为何窗口能做出相应的响应?问题的分析显示功能对应对象的show()函数,隐藏功能对应对应对象的hide()函数点击按钮后执行该函数即可问题的解决使用“信号和槽”机制完成该任务的过程:按下按钮clicked()信号产生槽函数hide()被调用窗体隐藏5信号一个特定的标识,当内部发生某些事件或状态改变时能够被“发射”槽槽和普通的C+类的成员函数几乎是一样的唯一不同的是:槽可以和信号连接在一起,当发射这个信号的时候,就会自动调用这个槽作用 对象之间通信的高级接口事件出现时,通过发送信号将与之关联的槽函数激活,即执行槽函数代码67程序总结:信号和槽的连接基本实现语句:QObjec

3、t:connect(a,SIGNAL(a_signal(int), b,SLOT(b_slot(int)Connect是静态成员函数,需要加QObject: 如果是QObject子类来调用则不用连接的两个对象需要在连接前已经存在,否则会报错a_signal和b_slot中只能有参数类型,而非具体的值 8一个信号可以连接多个槽Task 再创建一个label,点击hide按钮或show按钮按钮时两个label能同时显示或隐藏多个信号可以连接一个槽Task 在最初程序基础上再创建一个按钮,点两个按钮中任意一个都可以隐藏label一个信号可以与另外一个信号相连接Task 连接两个按钮的clicked信

4、号9要把信号成功连接到槽或另一个信号,它们的参数必须具有相同的顺序和类型注:参数匹配的检查使用strcmp函数,所以类型必须严格一致。如string和const string就不匹配例外:信号参数比槽多,多余参数被忽略如果类型不匹配,或信号和槽不存在,编译时不会报错,运行时会有警告10练习1:使用滑块控制LCD上的数字发生变化练习2:使用按钮控制动画的暂停和播放11在designer中创建一个按钮,一个标签选择“编辑/信号和槽”拖动连接按钮和标签,弹出信号和槽选择对话框,观察有哪些信号和槽窗体/预览,查看效果12问题的提出 之前是使用Qt类中已定义的信号和槽,如果是自己定义实现的类,如何加入信

5、号和槽机制,实现自己想要的功能?问题的分析声明自定义的信号,直接使用,无需实现声明自定义的槽,跟类成员函数一样实现问题的解决声明时分别加入slots和signals关键字即可使用信号时: emit my_order(angle)13类的声明开始处加入Q_OBJECT宏,标准C+不支持,Qt通过moc(Meta Object Compiler)工具自动将其转为C+代码槽函数和普通C+类成员函数一样实现,但是当做真正的槽使用的时候访问权限的定义没有任何效果信号只需声明无需实现,定义的访问权限没有意义必须把类定义从实现文件中分离出来并放到头文件中。141516程序总结:自定义的类一般可以从QWidg

6、et类继承信号和槽都是类的成员函数自定义槽加关键字slots自定义信号加关键字signals使用自定义信号: emit my_signal(参数列表)17练习1:用两个按钮分别控制动画的暂停和继续播放练习2:创建一个按钮和LCD,每次点击按钮,LCD上的数字值加1练习3:做一个简单的猜数字游戏。内部规则等独立为一个类,该类的构造函数中随机产生目标值,有槽函数接收用户猜测的数字,发信号表明猜测的结果18 信号和槽信号和槽的基本实现语句(掌握、重点)信号和槽的连接规则(掌握、重点)信号和槽的参数匹配规则(掌握、重点) 常用函数QWidget等类常用函数(熟悉) 绘图个性化图形绘制方法(掌握、重点)

7、常用QPainter类函数(熟悉)QPainter类实现个性化程序的方案(了解)19QWidget类: setEnabled(bool)控件使能 setDisabled(bool)输入使能 width()窗口宽度 height()窗口高度 close()关闭 show()显示 hide()隐藏QFont类: QFont font(Helvetica,12,QFont:Bold) setFont(font)字体设置方式20 QLCDNumber类: setNumDigits()位数设置 display()内容显示 QTimer类: start()启动定时 timeout()到时信号 QStrin

8、g类: toInt()字符串转整数 toAScii()16位字符串转8位 number()字符串转数字 fromAscii()8位字符串转16位21 信号和槽信号和槽的基本实现语句(掌握、重点)信号和槽的连接规则(掌握、重点)信号和槽的参数匹配规则(掌握、重点) 常用函数QWidget等类常用函数(熟悉) 绘图个性化图形绘制方法(掌握、重点)常用QPainter类函数(熟悉)QPainter类实现个性化程序的方案(了解)22Qt事件处理的意义作为GUI界面,需要做很多和用户交互的事情。事件(event)很大程度上就是响应用户动作Qt的事件处理机制事件产生时,调用event()函数,由它根据事件

9、类型调用相应的事件处理器,如mousePressEvent()、paintEvent()等所以约定的事件发生时对应的函数自动被调用。通过重写该函数对应代码实现相应功能 23绘图事件的意义 常用的控件外,怎样来一些个性的外观,比如最基本的矩形、圆等;重新实现paintEvent()函数可以绘制个性化控件,更能定制窗口部件,随心所欲控制外观;绘图事件程序的处理流程代码放置在paintEvent()中,即重新实现绘图事件处理器;创建QPaint类的对象,调用相关QPainter类的函数实现个性化绘制;24Qt的二维图形绘制基于QPainter类 可以绘制几何形状(点、线、矩形、椭圆等) 可以绘制像素

10、映射、图形和文字 高级特性:像素混合、渐变填充、平移、旋转等QPainter类的使用 画笔(setPen):画线和边缘 画刷(setBrush):填充几何形状的图案 字体(setFont):用来绘制文字,字体可选252627程序总结:重新实现void paintEvent(QPaintEvent *)函数paintEvent函数中定义QPainter对象使用该对象调用相关函数,实现绘图,绘图相关的操作都需要在该函数体中执行28程序总结: 窗口视口转换模式,相当于把一张电子图片放到大小不同的显示器上去显示 QPainter:setWindow(x,y,width,height)设置窗口 QPai

11、nter:setViewport(x,y,width,height)设置视口29QPainter类常用函数 drawEllipse()画椭圆 drawRect()画矩形 drawLine()画直线 drawPicture()画图片 drawImage() 绘图片 drawPixmap()绘图片 drawText()绘文本 fillRect()填充矩形30QPainter类常用函数 rotate()角度旋转 translate()坐标变换 save()画笔保存 restore()画笔恢复 setBrush()设置画刷 setPen()设置画笔 setFont()设置字体31 信号和槽信号和槽的基本实现语句(掌握、重点)信号和槽的连接规则(掌握、重点)信号和槽的参数匹配规则(掌握、重点)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论