QT 绘图函数

QT 绘图函数

ID:37712700

大小:207.32 KB

页数:17页

时间:2019-05-29

QT 绘图函数_第1页
QT 绘图函数_第2页
QT 绘图函数_第3页
QT 绘图函数_第4页
QT 绘图函数_第5页
资源描述:

《QT 绘图函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、8-1用QPainter绘图(PaintingwithQPainter)  2011-10-2619:56:04

2、  分类:默认分类

3、  标签:

4、字号大中小 订阅8-1用QPainter绘图(PaintingwithQPainter)分类:C++GUIProgrammingwithQt42007-05-2921:528228人阅读评论(3)收藏举报 要在绘图设备(paintdevice,一般是一个控件)上开始绘制,我们只要创建一个QPainter,把绘图设备指针传给QPainter对象。例如:oidMyWid

5、get::paintEvent(QPaintEvent*event){   QPainterpainter(this);   ...} 使用QPainter的draw…()函数我们可以绘制各种图形。图8.1给出了主要的一些。绘制的方式由QPainter的设置决定。设置的一部分是从绘图设备得到的,其他是初始化时的默认值。三个主要的设置为:画笔,刷子和字体。画笔用来绘制直线和图形的边框。包含颜色,宽度,线型,角设置和连接设置。刷子是填充几何图形的方式。包含颜色,方式设置,也可以是一个位图或者渐变色。字体用来绘制文

6、本。字体的属性很多,如字体名,字号等。 这些设置随时可以改变,可用QPen,QBrush,QFont对象调用setPen(),setBrush(),setFont()修改。  Figure8.1.QPainter'smostfrequentlyuseddraw...()functionsFigure8.2.Capandjoinstyles Figure8.3.Penstyles Figure8.4.Predef

7、inedbrushstyles 现在来看看具体的例子。下面的代码是绘制图8.5(a)中椭圆的代码:QPainterpainter(this);painter.setRenderHint(QPainter::Antialiasing,true);painter.setPen(QPen(Qt::black,12,Qt::DashDotLine,Qt::RoundCap));painter.setBrush(QBrush(Qt::green,Qt::SolidPattern));painter.drawEllips

8、e(80,80,400,240);调用函数setRenderHint(QPainter::Antialiasing,true),使绘制时边缘平滑,使用颜色浓度的变化,把图形的边缘转换为象素时引起的扭曲变形尽可能减少,在支持这一功能的平台或者绘图设备上得到一个平滑的边缘。Figure8.5.Geometricshapeexamples 下面的代码是图8.5(b)中绘制扇形的代码:QPainterpainter(this);painter.setRenderHint(QPainter::Antialiasing,

9、true);painter.setPen(QPen(Qt::black,15,Qt::SolidLine,Qt::RoundCap,                   Qt::MiterJoin));painter.setBrush(QBrush(Qt::blue,Qt::DiagCrossPattern));painter.drawPie(80,80,400,240,60*16,270*16);函数drawPie()的最后两个参数值的单位为一度的十六分之一。 下面的代码是图8.5(c)中绘制贝赛尔曲线的代

10、码:QPainterpainter(this);painter.setRenderHint(QPainter::Antialiasing,true);QPainterPathpath;path.moveTo(80,320);path.cubicTo(200,80,320,80,480,320);painter.setPen(QPen(Qt::black,8));painter.drawPath(path); 通过连接基本图形元素,直线,椭圆,多段线,圆弧,二次和三次贝塞尔曲线等,QPainterPath类能确

11、定任何矢量图形。因此,绘图路径(Painterpaths)是最基本的绘制元素,任何图形和图形的组合都可以同路径(path)表示。一个路径能够确定一个轮廓,由这个轮廓确定的区域可以由刷子来填充。在图8.5(c)中我们没有设置刷子,因此只绘制了轮廓。 以上的三个例子都是使用了默认的刷子(Qt::SolidePattern,Qt::DiagCrossPattern,Qt::NoBrush)。在现在的应用程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。