【发布时间】:2020-04-28 16:07:26
【问题描述】:
正如标题所示,我尝试使用预定义的形状,但我没有找到任何为此设计的模块或类,我认为 Qt 不提供这种可能性(我可能错了),一切都应该是通过覆盖paintEvent 函数手动完成,所以我决定创建自己的形状(一条线),问题是当我应用setRenderHint 方法时它无法正确显示:
// x1 y1 x2 y2 : are integers that change according to the geometry of the parent (QWidget)
void Line::paintEvent(QPaintEvent*)
{
QPainter shape(this);
shape.setRenderHint(QPainter::Antialiasing); // <== Here
QPen pen(Qt::black);
forme.setPen(pen);
shape.drawLine(x1,y1,x2,y2);
}
如果我删除此功能,形状看起来很难看(在对角线),如果我保留它,绘制的线会显示渐变:
另一个问题是我每次都必须根据我的 Widget 的几何形状计算线条的定位。
所以我的问题是:是否可以创建不依赖于paintEvent 函数的形状?否则,是否有任何提供预构建形状的外部库?
【问题讨论】:
-
使用 Qt 图形框架
-
你使用的是什么版本的 Qt?
-
@Sergei Qt 5.14
标签: c++ qt paintevent