美文网首页
Qt 2D绘图

Qt 2D绘图

作者: 寒冰豌豆 | 来源:发表于2017-03-09 09:33 被阅读0次

Paint Systerm 关键字;

基本绘制和填充

  • QPainter来完成具体的绘制操作,可以绘制一切想要的图形,包括文本和图片。
  • QPainter 可以在任何继承字QPaintDevice类的任何对象上绘制操作。
  • QPainter一般在 部件重绘事件处理函数 paintEvent()中绘制,首先创建QPainter对象,然后进行绘制,在销毁对象。
  • void Widget::paintEvent(QPaintEvent *event)
    {
    QPainter painter(this);
    painter.drawLine(QPonit(0,0),QPoint(100,100));
    }

  • 使用画笔QPen类 为QPainter提供了画笔来绘制线条和形状的轮廓;可以设置画笔的 画刷(提供线条的颜色)、线宽、画笔风格(有实线、点线等其中Qt::NoPen表示不进行线条轮廓绘制)、画笔链接风格;
    QPen pen(..) ; QPainter.setPen(pen)
  • 使用画刷QBrush类、QBrush类提供了画刷来填充图形,一个画刷使用他的颜色和风格(如他的填充模式)来定义。
    其填充模式由Qt::BrushStyle枚举变量来定义
    QColor 可以察看关键字Qt::GlobalColor;
    画刷.png
  • 渐变填充
渐变填充.png 线性渐变.png 锥形渐变.png

坐标系统

可以察看Coordinate System 关键字

gaishu.png

Qt::RenderHint渲染来提供是否使用抗锯齿(Anti-aliased)功能

QPainter的渲染提示.png
  • QPainter::scale() 函数缩放坐标系统
  • QPainter::rotate()函数顺时针旋转坐标系统
  • QPainter::shear()围绕原点来扭曲坐标系统
  • QPainter::translate()平移坐标系统
QTransform类.png 保存与恢复.png 0.png scale.png shear.png
  • 视口viewpoint与窗口window()
物理坐标与逻辑坐标.png 逻辑坐标与物理坐标转换示意图.png
  • 绘制文字
    QPainter painter(this);
    QRectF rect(10.0,10.0,380.0,280.0);
    painter.setPen(Qt::red);
    painter.drawRect(rect);
    painter.setPen(Qt::blue);
    painter.drawText(rect,Qt::AlignHCenter,tr("AlignHCenter"));
    painter.drawText(rect,Qt::AlignLeft,tr("AlignLeft"));
    painter.drawText(rect,Qt::AlignRight,tr("AlignRight"));
    painter.drawText(rect,Qt::AlignVCenter,tr("AlignVCenter"));
    painter.drawText(rect,Qt::AlignBottom,tr("AlignBottom"));
    painter.drawText(rect,Qt::AlignCenter,tr("AlignCenter"));
    painter.drawText(rect,Qt::AlignBottom|Qt::AlignRight,tr("AlignBottom\AlignRight"));

   painter.drawText(120,80,tr("helloworld"));
  • 绘制路径
    如果要绘制一个复杂的图形,尤其是要重复绘制这写图形的时候,可以使用QPainterPath类,然后使用QPainter::drawPath()来进行绘制。
drawPath.png
可以使用addEllipse()、addPAth()、addRect()、addRegion()、addText()、addPolygon()来向图形中添加一些图形和文字。从当前点进行绘制,绘制完成后以结束点作为新的起点。currentPosition()函数获取当前点,使用moveTo()函数来改变当前点。当组建好路径后使用drawPath()函数来绘制路径。

填充规则Qt::FillRul有Qt::addEventFill和Qt::WindingFill

绘制图像

相关文章

  • Qt 2D绘图

    Paint Systerm 关键字; 基本绘制和填充 QPainter来完成具体的绘制操作,可以绘制一切想要的图形...

  • Qt 绘图——基本绘图

    Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainte...

  • QT(绘图)

    绘图设备 QPixmap:针对屏幕进行优化了,和平台相关,不能对图片进行修改 QInage:和平台无关,可以对图片...

  • Android P 图像显示系统(三)Android HWUI

    Android中,绘图的API很多,比如2D的绘图skia;3D的绘图OpenGLES,Vulkan等。Andro...

  • canvas绘图方法总结

    getContext('2d') : canvas的2D绘图环境 【直线与方块】 1/fillRect(x,y,w...

  • Quartz 2D 绘图技术

    Quartz 2D。是 iOS 和 Mac OS X 环境下的2D绘图引擎。Quartz 2D 也被称为 Core...

  • Python matplotlib主要画图函数-统计方面.md

    matplotlib简介 matplotlib是python中用于绘制2D图像,用于科学计算绘图 基本绘图函数说明...

  • 181127 R的绘图系统

    R的三大绘图系统 基本绘图系统 始于空白帆布 图+修饰/添加 = 执行函数 适合2D绘图 graphics包,pl...

  • Android绘图机制与处理技巧

    参考资料 目录 1)屏幕尺寸信息 2)2D绘图基础 3)XML绘图 4)绘图技巧 5)图像处理-色彩特效处理 6)...

  • Quartz 2D

    Quartz 2D简介 Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成...

网友评论

      本文标题:Qt 2D绘图

      本文链接:https://www.haomeiwen.com/subject/zfcrgttx.html