QML,代码一次,部署两次

时间:2015-09-23 17:39:58

标签: qt user-interface mobile qml desktop

我正在用QML创建一个应用程序。最初它仅供桌面使用,但我也决定覆盖Android设备。

我遇到的问题是如何处理不同的平台。目前,我有一个单独的类,提供有关屏幕比例,平台(移动,桌面)方向等的信息。

为每个平台提供最接近本机的UX的最佳方法是什么?

如何处理这样的情况?

移动

  • StackView 2页
  • ListView占用整个屏幕空间
  • 单击ListView中的对象导航到第二页 其他信息

桌面

  • 没有StackView
  • ListView仅占用300像素
  • 有关列表中当前所选元素的其他信息应该 在ListView
  • 旁边的TextArea中可见

基于计算的屏幕比率或给定设备的像素密度设计可扩展UI是一种解决方案。但是,这种移动界面在桌面上看起来非常糟糕。您能想象在PC上运行Android Gmail应用吗?

我看到的解决方案是将尽可能多的逻辑放入C ++中,并为QML中的移动和桌面平台创建轻量级布局。

在您看来,什么是定位多个设备的最佳方式。我是否应该为移动设备创建可扩展的用户界面,并在桌面上使用它,并且只需处理它即可。或者我应该牺牲更多的时间并为每个平台创建UI,以便它在任何地方都是用户友好的?

1 个答案:

答案 0 :(得分:0)

  

我是否应该为移动设备创建可扩展的用户界面并在桌面上使用它并且只是处理它?或者我应该牺牲更多的时间并为每个平台创建UI,以便它在任何地方都是用户友好的?

这个问题非常主观,我们还没有看到有问题的用户界面,但在我看来,你应该牺牲更多的时间,为桌面和移动设备创造一个不错的用户界面。这假设您的应用程序的桌面版本具有足够的内容和/或功能来保证它。

  

我看到的解决方案是将尽可能多的逻辑放入C ++中,并为QML中的移动和桌面平台创建轻量级布局。

这是正确的方法。 QML非常易于编写,只要您保持简单,就非常容易维护。 Qt Quick Controls很难学到这一点,这就是创建Qt Quick Controls 2的原因:使用尽可能多的C ++和少量JavaScript,昂贵的绑定,Loader等等。