gpt4 book ai didi

c++ - 如何将 QPen 与 QpainterPath 一起使用?

转载 作者:太空宇宙 更新时间:2023-11-04 11:54:46 25 4
gpt4 key购买 nike

我有这样的代码:

     QPainterPath groupPath;
QPen pen; // new

pen.setCosmetic(1); // new

groupPath.setPen(pen); // error (error: class "QPainterPath" has no member "setPen")
groupPath.moveTo(60.0, 40.0);
groupPath.arcTo(40.0, 35.0, 40.0, 10.0, 180.0, 180.0);
groupPath.moveTo(40.0, 40.0);
groupPath.lineTo(40.0, 80.0);
groupPath.arcTo(40.0, 75.0, 40.0, 10.0, 0.0, 180.0);
groupPath.lineTo(80.0, 80.0);
groupPath.lineTo(80.0, 40.0);
groupPath.closeSubpath();

如何使用 setPen 在我的代码中使用 Cosmetic?

最佳答案

您不能在 QPainterPath 上使用 setPen() 因为它不是画家,它只是一个路径.

您应该创建一个QPainter,在其上使用setPen(),然后绘制路径:

QPainter painter(this);
QPen pen;
pen.setCosmetic(true);
painter.setPen(pen);

QPainterPath groupPath
groupPath.moveTo(60.0, 40.0);
groupPath.arcTo(40.0, 35.0, 40.0, 10.0, 180.0, 180.0);
groupPath.moveTo(40.0, 40.0);
groupPath.lineTo(40.0, 80.0);
groupPath.arcTo(40.0, 75.0, 40.0, 10.0, 0.0, 180.0);
groupPath.lineTo(80.0, 80.0);
groupPath.lineTo(80.0, 40.0);
groupPath.closeSubpath();

painter.drawPath(groupPath);

此外,正如 @Andreas 所说,pen.setCosmetic(true) 不是必需的,因为 QPen() 的默认构造函数创建一支宽度为 0 的笔,这已经是 Cosmetic

关于c++ - 如何将 QPen 与 QpainterPath 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16604075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com