上的QML将C++用于业务逻辑
QML on will C++ work for business logic?
对即将到来的项目使用QT/QML的可行性进行一些调查。客户端希望它最初在Windows和Mac台式机上运行,并有可能在未来推出iOS和Android。他们希望知道,我们建造的东西将相对容易移动。我不是一个桌面程序员,但我看到QML是为使用C++而设计的。因此,构建一个在Mac和Windows上运行的应用程序应该相对容易,iOS将接受C++,所以我看不出有太多障碍。但我对安卓感到困惑。我看到人们在谈论使用QML构建Android应用程序,但他们似乎仍然在使用java;我猜它在背景中使用了NDK。
但是,如果您编写的应用程序前面有QML,后面有C++,它能在Android上工作吗?或者你需要用java重写C++部分吗?这个应用程序并不简单,所以我们必须在QML之外提供一些逻辑,至少看起来确实如此。虽然我们可以通过使用QT来节省时间和$$$,而不必在台式机和iOS上使用本机,但我看到了Android的问题。
但是,如果您编写的应用程序前面有QML,后面有C++,它能在Android上工作吗?或者你需要用java重写C++部分吗?
这真的取决于情况。您可能需要通过Java界面,其中Android平台没有为某些功能提供直接和公共的API。一个例子是低级IO操作,比如为usb串行设备写入串行端口,但它还有更多
通常,Qt模块和基于Qt的第三方软件所做的是使用Qt 5.2中引入的QAndroidExtras附加模块。这将允许轻松地将后端集成到C++逻辑中。
考虑到这一点,您可以在后台隐藏Java实现的详细信息,同时仍然维护QML的C++接口。因此,它应该这样做。
请参阅以下文档以了解它:
Qt Android Extras
在这里你可以找到一个很好的例子:
Qt通知程序-演示从Android应用程序调用Java代码。
- 1d 智能指针不适用于语法 (*)++
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 用于访问容器<T>数据成员的正确 API
- 重载操作程序时出错>>用于类中的字符串 memebr
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- C++中的cin.ignore()函数不适用于整个流
- 没有用于初始化C++中的变量模板的匹配构造函数
- 用于C++中带有数组和指针的循环
- 为什么它不适用于Visual 2019的原因
- 使用在用于SFINAE的void_t中具有参数的方法
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 重载==不适用于二进制树
- Insert函数不适用于2 if语句C++
- 用于矢量处理的多个线程
- 使外部项目可用于find_package CMake
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 为什么模数运算符不适用于该代码
- 并行用于C++17中数组索引范围内的循环
- 将fold表达式与std::一起用于两个元组
- 上的QML将C++用于业务逻辑