frostace07 2018-05-13 12:40 采纳率: 0%
浏览 3558
已结题

Qt 使用QPainter绘图问题

我在mainwindow里定义了成员函数drawArc,用来画一个镂空的扇形

void drawArc(QLabel *label,QPixmap pixmap, QPainter *painter, QColor color, qreal startangle , qreal spanangle )
    {
    //---------------------------------------------------------------------------------------
    QPixmap tempPixmap = pixmap;                                // 定义画布
    painter->begin(&tempPixmap);
    painter->setRenderHint(QPainter::Antialiasing,true);
    painter->setPen(Qt::NoPen);                                 // 没有轮廓
    //----------------------------------------------------------------------------------------
    QRectF rect(0,0,pixmap.width(),pixmap.width());      //用来画扇形的正方形
    painter->setBrush(color);                                   // 设置颜色
    int width = pixmap.width()/6;
    //int height = rect->height()/6;
    QPainterPath path;

    path.arcTo(rect, startangle, spanangle);
    QPainterPath subPath;
    subPath.addEllipse(rect.adjusted(width, width, -width, -width));

    painter->drawPath(path - subPath);
    painter->end();
    label->setPixmap(tempPixmap);
}

调用是这样写的:
drawArc(callerLabel,pixmap,&painter,color[0],0,180);

图片说明

最后结果出来确实这样的,求问高手!!!急!!!

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-05-13 15:43
    关注
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码