gpt4 book ai didi

c++ - Qt 气球小部件掩码

转载 作者:太空宇宙 更新时间:2023-11-04 13:07:24 27 4
gpt4 key购买 nike

我已经为我的应用程序创建了一个气球小部件。问题是小部件的尖端是锯齿状的,所以我做错了什么?

锯齿状的尖端

void BalloonWidget::paintEvent(QPaintEvent *)
{
QVector<QPointF> vertices;
vertices << QPointF(0, 0)
<< QPointF(width(), 0)
<< QPointF(width(), height() * 0.8)
<< QPointF(width() * 0.60, height() * 0.8)
<< QPointF(width() * 0.5, height())
<< QPointF(width() * 0.40, height() * 0.8)
<< QPointF(0, height() * 0.8);

balloonPoly = QPolygonF(vertices);

QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setRenderHint(QPainter::HighQualityAntialiasing, true);
painter.setBrush(QBrush(backgroundColor));

QRegion maskRegion(balloonPoly.toPolygon(), Qt::WindingFill);
painter.drawPolygon(balloonPoly);
setMask(maskRegion);
}

最佳答案

在我看来,锯齿状不是由抗锯齿提示不起作用引起的,而是由 mask 引起的:

QRegion maskRegion(balloonPoly.toPolygon(), Qt::WindingFill);  
painter.drawPolygon(balloonPoly);
setMask(maskRegion);

mask 有 1 位透明/不透明。没有办法解决这个问题。

但是

由于您是自己绘制多边形,因此似乎没有理由也使用 mask 。

取下 mask 并再次检查“锯齿状”。

关于c++ - Qt 气球小部件掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41609754/

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