Linux上QPainter :: drawText的性能不佳
发布时间:2020-12-14 02:13:41 所属栏目:Linux 来源:网络整理
导读:我注意到,当使用缩放窗口映射时,QPainter :: drawText在 Linux上非常慢.我能做些什么吗?我已经检查过禁用消除锯齿或启用光栅渲染器是否有所作为,但事实并非如此. 示例:当使用视口大小(450px,200px)时,窗口大小为因子100(45000,20000),因此字体大小按比例缩
我注意到,当使用缩放窗口映射时,QPainter :: drawText在
Linux上非常慢.我能做些什么吗?我已经检查过禁用消除锯齿或启用光栅渲染器是否有所作为,但事实并非如此.
示例:当使用视口大小(450px,200px)时,窗口大小为因子100(45000,20000),因此字体大小按比例缩放100倍(1400pt),渲染文本“hello”的30倍左右在Linux上4(!)秒 – 在OpenSuse和Ubuntu上. 相同的示例在Windows和Mac上快速呈现. 仅用于说明:尽管字体大小按比例放大,但由于所描述的窗口< - >视口映射,文本在屏幕上以“正常”大小显示. 这是我正在使用的简单示例代码: void Widget::paintEvent(QPaintEvent *event) { const int scaleFactor = 100; QPainter painter(this); // Setup font QFont font; font.setPointSize(14*scaleFactor); painter.setFont(font); // Setup mapping painter.setWindow(0,width() * scaleFactor,height() * scaleFactor); // Render the text for (int i = 0; i < 30; i++) painter.drawText(qrand() % (width() * scaleFactor),qrand() % (height() * scaleFactor),"Hello"); } 任何帮助都是极好的. 注意:我使用的是Qt 4.8.5 解决方法
这个问题已经很老了但是因为Qt bug似乎仍未解决,所以我们去…
不确定这可能是一个选项,但在我工作的两个项目中,我们实现了标签,这些标签首先在内部渲染为pimap / image然后绘制. 我不认为它在这里有所作为,但您也可以检查QStaticText是否对您的案例中的性能产生有益影响. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |