Qt信号和槽常用函数及绘图优质PPT.ppt
- 文档编号:14304259
- 上传时间:2022-10-21
- 格式:PPT
- 页数:32
- 大小:459.50KB
Qt信号和槽常用函数及绘图优质PPT.ppt
《Qt信号和槽常用函数及绘图优质PPT.ppt》由会员分享,可在线阅读,更多相关《Qt信号和槽常用函数及绘图优质PPT.ppt(32页珍藏版)》请在冰豆网上搜索。
信号和槽的连接基本实现语句:
QObject:
connect(a,SIGNAL(a_signal(int),b,SLOT(b_slot(int)Connect是静态成员函数,需要加QObject:
如果是QObject子类来调用则不用连接的两个对象需要在连接前已经存在,否则会报错a_signal和b_slot中只能有参数类型,而非具体的值,信号和槽(简介),7,8,一个信号可以连接多个槽Task再创建一个label,点击hide按钮或show按钮按钮时两个label能同时显示或隐藏多个信号可以连接一个槽Task在最初程序基础上再创建一个按钮,点两个按钮中任意一个都可以隐藏label一个信号可以与另外一个信号相连接Task连接两个按钮的clicked信号,信号和槽(连接规则),8,9,要把信号成功连接到槽或另一个信号,它们的参数必须具有相同的顺序和类型注:
参数匹配的检查使用strcmp函数,所以类型必须严格一致。
如string和conststring就不匹配例外:
信号参数比槽多,多余参数被忽略如果类型不匹配,或信号和槽不存在,编译时不会报错,运行时会有警告,信号和槽(参数匹配),9,10,练习1:
使用滑块控制LCD上的数字发生变化练习2:
使用按钮控制动画的暂停和播放,信号和槽(练习),10,11,在designer中创建一个按钮,一个标签选择“编辑/信号和槽”拖动连接按钮和标签,弹出信号和槽选择对话框,观察有哪些信号和槽窗体/预览,查看效果,信号和槽(designer体验),11,12,问题的提出之前是使用Qt类中已定义的信号和槽,如果是自己定义实现的类,如何加入信号和槽机制,实现自己想要的功能?
问题的分析声明自定义的信号,直接使用,无需实现声明自定义的槽,跟类成员函数一样实现问题的解决声明时分别加入slots和signals关键字即可使用信号时:
emitmy_order(angle),信号和槽(自定义),12,13,类的声明开始处加入Q_OBJECT宏,标准C+不支持,Qt通过moc(MetaObjectCompiler)工具自动将其转为C+代码槽函数和普通C+类成员函数一样实现,但是当做真正的槽使用的时候访问权限的定义没有任何效果信号只需声明无需实现,定义的访问权限没有意义必须把类定义从实现文件中分离出来并放到头文件中。
信号和槽(自定义),13,14,信号和槽(自定义),14,15,信号和槽(自定义),15,16,程序总结:
自定义的类一般可以从QWidget类继承信号和槽都是类的成员函数自定义槽加关键字slots自定义信号加关键字signals使用自定义信号:
emitmy_signal(参数列表),信号和槽(自定义),16,17,练习1:
用两个按钮分别控制动画的暂停和继续播放练习2:
创建一个按钮和LCD,每次点击按钮,LCD上的数字值加1练习3:
做一个简单的猜数字游戏。
内部规则等独立为一个类,该类的构造函数中随机产生目标值,有槽函数接收用户猜测的数字,发信号表明猜测的结果,信号和槽(练习),17,18,学习目标,信号和槽信号和槽的基本实现语句(掌握、重点)信号和槽的连接规则(掌握、重点)信号和槽的参数匹配规则(掌握、重点)常用函数QWidget等类常用函数(熟悉)绘图个性化图形绘制方法(掌握、重点)常用QPainter类函数(熟悉)QPainter类实现个性化程序的方案(了解),18,19,QWidget类:
setEnabled(bool)控件使能setDisabled(bool)输入使能width()窗口宽度height()窗口高度close()关闭show()显示hide()隐藏QFont类:
QFontfont(Helvetica,12,QFont:
Bold)setFont(font)字体设置方式,常用函数,19,20,QLCDNumber类:
setNumDigits()位数设置display()内容显示QTimer类:
start()启动定时timeout()到时信号QString类:
toInt()字符串转整数toAScii()16位字符串转8位number()字符串转数字fromAscii()8位字符串转16位,常用函数,20,21,学习目标,信号和槽信号和槽的基本实现语句(掌握、重点)信号和槽的连接规则(掌握、重点)信号和槽的参数匹配规则(掌握、重点)常用函数QWidget等类常用函数(熟悉)绘图个性化图形绘制方法(掌握、重点)常用QPainter类函数(熟悉)QPainter类实现个性化程序的方案(了解),21,22,Qt事件处理的意义作为GUI界面,需要做很多和用户交互的事情。
事件(event)很大程度上就是响应用户动作Qt的事件处理机制事件产生时,调用event()函数,由它根据事件类型调用相应的事件处理器,如mousePressEvent()、paintEvent()等所以约定的事件发生时对应的函数自动被调用。
通过重写该函数对应代码实现相应功能,绘图(简介),22,23,绘图事件的意义常用的控件外,怎样来一些个性的外观,比如最基本的矩形、圆等;
重新实现paintEvent()函数可以绘制个性化控件,更能定制窗口部件,随心所欲控制外观;
绘图事件程序的处理流程代码放置在paintEvent()中,即重新实现绘图事件处理器;
创建QPaint类的对象,调用相关QPainter类的函数实现个性化绘制;
绘图(简介),23,24,Qt的二维图形绘制基于QPainter类可以绘制几何形状(点、线、矩形、椭圆等)可以绘制像素映射、图形和文字高级特性:
像素混合、渐变填充、平移、旋转等QPainter类的使用画笔(setPen):
画线和边缘画刷(setBrush):
填充几何形状的图案字体(setFont):
用来绘制文字,字体可选,绘图(简介),24,25,绘图(程序演练),25,26,绘图(程序演练),26,27,程序总结:
重新实现voidpaintEvent(QPaintEvent*)函数paintEvent函数中定义QPainter对象使用该对象调用相关函数,实现绘图,绘图相关的操作都需要在该函数体中执行,绘图(程序总结),27,28,程序总结:
窗口视口转换模式,相当于把一张电子图片放到大小不同的显示器上去显示QPainter:
setWindow(x,y,width,height)设置窗口QPainter:
setViewport(x,y,width,height)设置视口,绘图(程序总结),28,29,QPainter类常用函数drawEllipse()画椭圆drawRect()画矩形drawLine()画直线drawPicture()画图片drawImage()绘图片drawPixmap()绘图片drawText()绘文本fillRect()填充矩形,绘图(常用函数),29,30,QPainter类常用函数rotate()角度旋转translate()坐标变换save()画笔保存restore()画笔恢复setBrush()设置画刷setPen()设置画笔setFont()设置字体,绘图(常用函数),30,31,学习目标回顾,信号和槽信号和槽的基本实现语句(掌握、重点)信号和槽的连接规则(掌握、重点)信号和槽的参数匹配规则(掌握、重点)常用函数QWidget等类常用函数(熟悉)绘图个性化图形绘制方法(掌握、重点)常用QPainter类函数(熟悉)QPainter类实现个性化程序的方案(了解),31,32,练习1:
绘制一个8x8的棋盘,棋盘上方有两个按钮,一个显示“开始”,一个显示“结束”,点击“开始”按钮后该按钮变灰,点击“结束”按钮退出程序。
要求棋盘在窗口拉伸时仍能保持居中的正方形。
总结练习,32,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Qt 信号 常用 函数 绘图