我们将我们的应用程序从 Qt3 移植到 Qt5。它在 Windows 下运行流畅,但在 Linux (X11) 下运行不流畅。使用 Qt3,Windows 或 Linux 都没有问题。
在应用程序内部有一个大约 1000x800 像素的 Canvas 。在 Canvas 上绘制了一个简单的矢量图形。用户单击 Canvas ,按住鼠标按钮并移动鼠标。每次鼠标移动都会导致重新绘制。
我们记录了每个阶段的毫秒数:
MouseMove 事件处理开始:10581
调用更新或重绘(哪个没有区别)
处理产生的 Paint-Event:10583
油漆饰面: 10584
从更新/重绘返回: 10687 (!)
我找不到 100 毫秒延迟的任何原因(在每个鼠标移动事件中!)
我需要帮助!
最佳答案
在 Qt4.8 中,原生图形后端已被弃用。
远程 X11 不再使用 X11 调用绘制,而是通过绘制到 Canvas 上并将结果(位图)传输到客户端。当通过网络运行 X11 时,这可能会导致更大的带宽需求和更慢。
另见 this
关于qt5 - Qt5 和 X11 的严重性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28782162/