如何在QT android app

时间:2017-09-27 14:59:56

标签: c++ performance qt opengl scroll

我正在尝试制作一个简单的QT安卓应用程序,但基本上我的问题是在我的主屏幕上我有大约250个我要滚动的小图像。但我真的需要滚动才能流畅而快速。首先我尝试使用QML,但它并不是很快,然后我尝试在qt设计器中制作应用程序并使用小部件,但这非常慢。然后我尝试使用openGL但是在android上我只能使用openGL ES而且我找不到这么多的例子,因为我发现的每个例子都比我需要的更先进。

但基本上我的主要问题是,您认为解决我的问题的最佳方法是什么?如果它的openGL使用它的哪种方式是最好的解决方案呢?

谢谢。

1 个答案:

答案 0 :(得分:0)

与同一设备上的本机应用程序相比,滚动时这两种方法都不会出现问题。请检查以下内容:

  1. 确保仅在发布版本中测量性能,禁用QML调试且不附加调试器。
  2. 也许你的设备根本无法在一个视图中跟上这么多图像 - 那么这不是Qt问题。与“原生”java-App比较,看看是否是这种情况。
  3. 检查您是否正确实施了所有内容;例如检查主循环中是否有任何正在运行的事件或反复发生的某些事件会消耗CPU时间
  4. 还有一些更普遍的建议:

    1. 在将图像提供给UI之前,将图像缩小到适当的视图大小,因为它们可能必须在每次帧更新时重新缩放和/或消耗图形内存。例如。当它将以64x64视图显示时,不要将源设置为1024x1024图像
    2. 如果图像要在纯色背景上显示,请从图像中删除透明度。
    3. 不要使用其他小部件/控件覆盖图像
    4. 如果您仍然获得“慢”UI,可能会尝试将所有或多个图片及其周围的UI /控件合并为一个或多个更大的图像
    5. 很长的观看次数不便于用户使用。也许实现一个寻呼机或标签视图等将您的列表分成多个视图。这样您还可以减少加载时间
    6. 不要尝试自己在openGL中实现接口。你不太可能比QtWidgets和QtQuick更好。