如何解决QChart 和使用 QGradients 加速 OpenGL 渲染
出了什么问题:
目前我的图表完全正常,例如有渐变和单色系列:
这很好用,但是当我使用 fooSeries->setUseOpenGL(true)
在 3 系列上启用 openGL 加速(以获得更高性能)时,图表变成了这样:
如您所见,渐变系列的颜色变为黑色,而单色系列的颜色变为白色。此外,圆顶帽和圆角连接似乎也消失了。我做了一些实验,看看是什么原因造成的。
尝试修复/实验:
我为系列着色如下:
// fooGradient is a QLinearGradient described elsewhere as an example.
QBrush fooGradientPenBrush = QBrush(fooGradient);
fooPen = new QPen(fooGradientPenBrush,5,Qt::SolidLine,Qt::RoundCap,Qt::RoundJoin);
//There are actually 2 QPens for two separate gradients in the program,but this is just for the example.
QBrush barPenBrush = QBrush(QRgb(0xFFFFFF));
barPen = new QPen(barPenBrush,3,Qt::RoundJoin);
然后将这些笔附加到它们各自的系列之上:
fooSeries->setPen(*fooPen);
barSeries->setPen(*barPen);
然后将它们附加到图表中。而已。我会继续试验和查看文档,看看我是否遗漏了什么,可能只是 openGL 加速只接受纯色,但据说文档中找不到我可以找到的任何地方。如果有人想查看here,我会留下指向 setUseOpenGl 文档的链接。
解决方法
经过更多研究,我似乎遗漏了文档中的一个重要细节:
加速系列将忽略钢笔样式和标记形状。仅支持实线和普通散点。散点可能是圆形或矩形,具体取决于底层图形硬件和驱动程序。
我仍然想知道是否有一种方法可以实现圆角而不是加速线。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。