《图形与图画》PPT课件.ppt
《《图形与图画》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《图形与图画》PPT课件.ppt(33页珍藏版)》请在三一办公上搜索。
1、第7章 图形与图画,7.1 各类位置相关函数的区别,7.2 各种与位置相关函数的使用场合,7.3 各种基础图形的绘制,7.4 双缓冲机制,7.5 SVG格式图片的显示,7.1 各类位置相关函数的区别,Qt提供了很多关于获取窗体位置以及显示区域大小的函数,如x()、y()和pos()、rect()、size()、geometry()等,如图7.1所示。,7.2 各种与位置相关函数的使用场合,本节通过一个简单的例子介绍QWidget提供的x()、y()、frameGeometry、pos()、rect()、size()、geometry()等函数的使用场合。在此例中,当改变对话框的大小,或移动对话
2、框时调用各个函数所获得的信息也相应地发生变化,从变化中可得知各函数之间的区别,如图7.2所示。,7.3 各种基础图形的绘制,首先介绍各种形状的区分,其次介绍画笔颜色、线宽、风格、顶帽风格、连接点风格以及画刷的颜色设置、填充模式和画刷的风格设置,使用的实例如图7.3所示。,7.3 各种基础图形的绘制,此实例的具体实现包含了两个部分的内容,一个是用于画图的区域PaintArea类,一个是主窗口MainWidget类,如图7.4所示。,7.3.1 绘图区的实现,打开“paintarea.h”头文件,添加如下代码:#include#include class PaintArea:public QWid
3、get Q_OBJECTpublic:enum ShapeLine,Rectangle,RoundRect,Ellipse,Polygon,Polyline,Points,Arc,Path,Text,Pixmap;PaintArea(QWidget*parent=0);void setShape(Shape);void setPen(QPen);void setBrush(QBrush);void setFillRule(Qt:FillRule);void paintEvent(QPaintEvent*);private:Shape shape;QPen pen;QBrush brush;Qt
4、:FillRule fillRule;,7.3.1 绘图区的实现,PaintArea类的构造函数完成初始化工作,设置了图形显示区域的背景色以及最小显示尺寸,具体代码如下:#include paintarea.h#include PaintArea:PaintArea(QWidget*parent):QWidget(parent)setPalette(QPalette(Qt:white);setAutoFillBackground(true);setMinimumSize(400,400);setShape()函数可以设置形状、setPen()函数可以设置画笔、setBrush()函数可以设置画
5、刷、setFillRule()函数可以设置填充模式,具体代码实现。,7.3.1 绘图区的实现,(1)利用QPainter绘制图形(Shape)Qt为开发者提供了丰富的绘制基本图形的draw函数,如图7.6所示。,7.3.1 绘图区的实现,(2)利用QPainterPath绘制简单图形利用QPainterPath绘制简单图形,QPainterPath类为QPainter类提供了一个存储容器,里面包含了所要画的内容的集合以及画的顺序,如长方形、多边形、曲线等各种任意图形。cubicTo()函数绘制的是贝赛尔曲线,如图7.7所示。,7.3.1 绘图区的实现,利用QPainterPath类可以实现QP
6、ainter类的所有draw()函数能实现的图形。如对于QPainter:drawRect()函数,除了可用上面介绍的QPainterPath:addRect()的方式实现,还可以用如下方式实现:QPainterPath path;path.moveTo(0,0);path.lineTo(200,0);path.lineTo(200,100);path.lineTo(0,100);path.lineTo(0,0);,7.3.2 主窗口的实现,主窗口类MainWiget继承自QWidget类,包含完成各种图形参数选择的控制区的声明、一系列设置与画图相关参数的槽函数的声明和一个绘图区PaintAr
7、ea对象的声明。打开“mainwidget.h”头文件,添加代码。MainWiget类的构造函数中创建了各参数选择控件,打开“mainwiget.cpp”文件,添加代码。,7.3.2 主窗口的实现,ShowShape()槽函数,根据当前下拉列表框中选择的选项,并调用PaintArea类的setShape()函数设置PaintArea对象的形状参数,具体代码如下:void MainWidget:ShowShape(int value)PaintArea:Shape shape=PaintArea:Shape(shapeComboBox-itemData(value,Qt:UserRole).to
8、Int();paintArea-setShape(shape);,7.3.2 主窗口的实现,在此函数中获得与画笔相关的所有属性值,包括画笔颜色、画笔线宽、画笔风格、画笔顶端风格以及画笔连接点风格,共同构成QPen对象,并调用PaintArea对象的setPen()函数设置PaintArea对象的画笔属性。其他与画笔参数相关的响应函数完成的工作与此类似,具体代码如下:void MainWidget:ShowPenColor()QColor color=QColorDialog:getColor(Qt:blue);penColorFrame-setPalette(QPalette(color);i
9、nt value=penWidthSpinBox-value();Qt:PenStyle style=Qt:PenStyle(penStyleComboBox-itemData(penStyleComboBox-currentIndex(),Qt:UserRole).toInt();Qt:PenCapStyle cap=Qt:PenCapStyle(penCapComboBox-itemData(penCapComboBox-currentIndex(),Qt:UserRole).toInt();Qt:PenJoinStyle join=Qt:PenJoinStyle(penJoinCombo
10、Box-itemData(penJoinComboBox-currentIndex(),Qt:UserRole).toInt();paintArea-setPen(QPen(color,value,style,cap,join);,7.3.2 主窗口的实现,ShowPenWidth()槽函数的具体实现代码如下:void MainWidget:ShowPenWidth(int value)QColor color=penColorFrame-palette().color(QPalette:Window);Qt:PenStyle style=Qt:PenStyle(penStyleComboBo
11、x-itemData(penStyleComboBox-currentIndex(),Qt:UserRole).toInt();Qt:PenCapStyle cap=Qt:PenCapStyle(penCapComboBox-itemData(penCapComboBox-currentIndex(),Qt:UserRole).toInt();Qt:PenJoinStyle join=Qt:PenJoinStyle(penJoinComboBox-itemData(penJoinComboBox-currentIndex(),Qt:UserRole).toInt();paintArea-set
12、Pen(QPen(color,value,style,cap,join);,7.3.2 主窗口的实现,ShowPenStyle()槽函数的具体实现代码如下:void MainWidget:ShowPenStyle(int styleValue)QColor color=penColorFrame-palette().color(QPalette:Window);int value=penWidthSpinBox-value();Qt:PenStyle style=Qt:PenStyle(penStyleComboBox-itemData(styleValue,Qt:UserRole).toIn
13、t();Qt:PenCapStyle cap=Qt:PenCapStyle(penCapComboBox-itemData(penCapComboBox-currentIndex(),Qt:UserRole).toInt();Qt:PenJoinStyle join=Qt:PenJoinStyle(penJoinComboBox-itemData(penJoinComboBox-currentIndex(),Qt:UserRole).toInt();paintArea-setPen(QPen(color,value,style,cap,join);,7.3.2 主窗口的实现,ShowPenCa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形与图画 图形 图画 PPT 课件

链接地址:https://www.31ppt.com/p-5484543.html