美文网首页
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绘图

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