gpt4 book ai didi

c++ - 平滑倾斜线

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:38 25 4
gpt4 key购买 nike

如果不在 Qt 中使用 QPainterPath 对象过度像素化,我找不到合适的方法来绘制平滑的斜线。

请注意,我知道在 paintEvent 函数中绘制路径没有意义,为了简单起见,我把它放在那里。我试图直接在中央小部件中画线。

以下是我的代码片段:

void MyObject::paintEvent(QPaintEvent *)
{
QPainterPath aPath;
aPath.moveTo(40.0, 60.0); //random values to try
aPath.lineTo(254, 354.0);

QPainter painter(this);
painter.setPen(QPen(QColor(20, 20, 200), 10, Qt::SolidLine));
painter.drawPath(aPath);
}

这是我得到的结果:

enter image description here

太可怕了!我唯一能画出的美丽线条是水平的、垂直的或45°倾斜的……

最佳答案

如果您正在寻找绘图质量,Qt 文档提供了 illustrative example ( 5.X version ) 使用其渲染质量标志。通常,您可以使用 flags specified here ( 5.X version ),并使用 QPainter::setRenderHint() 设置它们( 5.X version ) 功能。看看您是否能够使用这些方法达到所需的质量。对于你的代码,你会寻找类似的东西

QPainter painter(this);
painter.setRenderHint(QPainter::SmoothPixmapTransform, true);
painter.setRenderHint(QPainter::HighQualityAntialiasing, true);
painter.setPen(QPen(QColor(20, 20, 200), 10, Qt::SolidLine));
painter.drawPath(aPath);

关于c++ - 平滑倾斜线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45800635/

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