Android 和 iOS 上的 C++ Qt 应用程序

C++ Qt application on Android and iOS

作为实验,我有一个纯 Qt C++ 应用程序(没有 QML)编译(使用 cmake & ninja)和 运行 on:

它基本上使用 QMainWindow、QGraphicsItem 和 QDialog、iostream 以及一些 C++ 容器和迭代器。

我想知道 Android 的端口是否是:

同iOS。

从技术上讲,这是可能的: 为 Android 和 iOS 编译 C++-Qt 应用程序很容易。 对于 iOS,您仍然需要 Mac 和 Xcode。 应用程序的部署、调试和 运行 也非常简单和无缝。

实际上,尝试将非平凡的桌面应用程序的 GUI 移植到移动设备是一个可怕的想法。 设计用于大屏幕、鼠标和键盘的图形用户界面在小触摸屏上效果不佳。

既然您提到了 QDialog:与桌面相比,某些概念在移动设备上的工作方式非常不同。 例如,DialogActivity 取代,用户通常不处理文件。

但是,您可以(我已经做到了)设计一个不带任何 QML 的 Qt GUI 应用程序,该应用程序在小型触摸屏上运行良好并且至少在桌面上可用。 它需要大量的手动调整和黑客攻击,但这是可能的。

备注:

  • qmake 对于移动应用程序来说比 cmake 更容易(将来应该会改变)
  • 虽然 Qt 有一些抽象,但您可能需要一些特定于平台的代码(即 JNIJavaObjective-C 的片段以及许多 #ifdef s)

是的,这是可能的。我参与过许多为 iOS 和 Android 开发的 Qt 应用程序。但是,从未使用过cmake,而是qmake。很高兴您开始尝试使用未来的 cmake,因为 qmake 将在未来的某个时候被弃用。 Qt官方文档开始添加cmake入门教程

https://doc.qt.io/qt-5/cmake-manual.html

我建议在移动设备上使用 Qt Quick for GUI。