Android 和 iOS 上的 C++ Qt 应用程序
C++ Qt application on Android and iOS
作为实验,我有一个纯 Qt C++ 应用程序(没有 QML)编译(使用 cmake & ninja)和 运行 on:
- Windows
- macOS
- Linux(ubuntu 和 centos/redhat)
- FreeBSD
它基本上使用 QMainWindow、QGraphicsItem 和 QDialog、iostream 以及一些 C++ 容器和迭代器。
我想知道 Android 的端口是否是:
- 可能
- 简单或复杂(如果可能)
- 如果网上有例子的话
同iOS。
从技术上讲,这是可能的:
为 Android 和 iOS 编译 C++-Qt 应用程序很容易。
对于 iOS,您仍然需要 Mac 和 Xcode。
应用程序的部署、调试和 运行 也非常简单和无缝。
实际上,尝试将非平凡的桌面应用程序的 GUI 移植到移动设备是一个可怕的想法。
设计用于大屏幕、鼠标和键盘的图形用户界面在小触摸屏上效果不佳。
既然您提到了 QDialog
:与桌面相比,某些概念在移动设备上的工作方式非常不同。
例如,Dialog 被 Activity 取代,用户通常不处理文件。
但是,您可以(我已经做到了)设计一个不带任何 QML 的 Qt GUI 应用程序,该应用程序在小型触摸屏上运行良好并且至少在桌面上可用。
它需要大量的手动调整和黑客攻击,但这是可能的。
备注:
qmake
对于移动应用程序来说比 cmake
更容易(将来应该会改变)
- 虽然 Qt 有一些抽象,但您可能需要一些特定于平台的代码(即
JNI
、Java
和 Objective-C
的片段以及许多 #ifdef
s)
是的,这是可能的。我参与过许多为 iOS 和 Android 开发的 Qt 应用程序。但是,从未使用过cmake,而是qmake。很高兴您开始尝试使用未来的 cmake,因为 qmake 将在未来的某个时候被弃用。 Qt官方文档开始添加cmake入门教程
我建议在移动设备上使用 Qt Quick for GUI。
作为实验,我有一个纯 Qt C++ 应用程序(没有 QML)编译(使用 cmake & ninja)和 运行 on:
- Windows
- macOS
- Linux(ubuntu 和 centos/redhat)
- FreeBSD
它基本上使用 QMainWindow、QGraphicsItem 和 QDialog、iostream 以及一些 C++ 容器和迭代器。
我想知道 Android 的端口是否是:
- 可能
- 简单或复杂(如果可能)
- 如果网上有例子的话
同iOS。
从技术上讲,这是可能的: 为 Android 和 iOS 编译 C++-Qt 应用程序很容易。 对于 iOS,您仍然需要 Mac 和 Xcode。 应用程序的部署、调试和 运行 也非常简单和无缝。
实际上,尝试将非平凡的桌面应用程序的 GUI 移植到移动设备是一个可怕的想法。 设计用于大屏幕、鼠标和键盘的图形用户界面在小触摸屏上效果不佳。
既然您提到了 QDialog
:与桌面相比,某些概念在移动设备上的工作方式非常不同。
例如,Dialog 被 Activity 取代,用户通常不处理文件。
但是,您可以(我已经做到了)设计一个不带任何 QML 的 Qt GUI 应用程序,该应用程序在小型触摸屏上运行良好并且至少在桌面上可用。 它需要大量的手动调整和黑客攻击,但这是可能的。
备注:
qmake
对于移动应用程序来说比cmake
更容易(将来应该会改变)- 虽然 Qt 有一些抽象,但您可能需要一些特定于平台的代码(即
JNI
、Java
和Objective-C
的片段以及许多#ifdef
s)
是的,这是可能的。我参与过许多为 iOS 和 Android 开发的 Qt 应用程序。但是,从未使用过cmake,而是qmake。很高兴您开始尝试使用未来的 cmake,因为 qmake 将在未来的某个时候被弃用。 Qt官方文档开始添加cmake入门教程
我建议在移动设备上使用 Qt Quick for GUI。