zoukankan      html  css  js  c++  java
  • QT5之2D绘图-绘制路径

    在绘制一个复杂的图形的时候,如果你需要重复绘制一个这样的图形,就可以使用到QPainterPath类,然后使用QPainter::drawPath()来进行绘制。


    QPainterPath类为绘制操作提供了一个容器,可以用来创建图形并且重复使用。一个绘图路径就是由多个矩形、椭圆、线条或者曲线等组成的对象,一个路径可以是封闭的,例如矩形和椭圆;也可以是非封闭的,例如线条和曲线。


    一、简单应用

    void Widget::paintEvent(QPaintEvent *)
    {
        QPainterPath path;
        path.addEllipse(100, 100, 50, 50);
        path.lineTo(200, 200);
        QPainter painter(this);
        painter.setPen(Qt::blue);
        painter.setBrush(Qt::red);
        painter.drawPath(path);
    }

    当你创建了一个QPainterPath对象后,可以使用lineTo()、arcTo()、cubicTo()和quadTo()等函数将直线或者曲线添加到路径中

    二、复制图形

    QPainterPath path2;
    path2.addPath(path);
    path2.translate(100,0);
    painter.drawPath(path2);


    三、绘制图形时的当前位置


    1、创建路径后,默认是从(0, 0)点开始绘制的


    2、可以使用moveTo()函数来改变当前点的位置

    void Widget::paintEvent(QPaintEvent *)
    {
        QPainterPath path;
        path.addRect(50, 50, 40, 40);
    
        //移动到(100, 100)点
        path.moveTo(100, 100);
    
        path.lineTo(200, 200);
        QPainter painter(this);
        painter.drawPath(path);
    }







  • 相关阅读:
    .Net网站的web.config配置说明
    listview垂直滚动条效果
    .net 委托事件
    利用API实现窗体淡入淡出特效
    易经中的64个大智慧
    FlashWindowEx实现窗口在任务栏闪烁/变化颜色
    实现XML与DataTable互转 .NET
    C# .NET弹出窗口
    SVN使用教程
    在IE中使用VS.net WinForm控件
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9387109.html
Copyright © 2011-2022 走看看