如何控制QML表单的生命周期(我指的是Windows)?我正在谈论Android上的onCreate,onResume,onPause等方法或iOS上的视图生命周期。我可以在Android,iOS,Windows 10移动版,台式机等上使用QML表单的生命周期吗?

最佳答案

Qt Quick(QML)应用程序的设计与Android不同。视图和对象(例如ButtonText等)之间没有区别。每个具有图形表示形式的QML对象都继承Item,并且可以定义Component.onCompletedComponent.onDestruction函数。一旦对象被创建和销毁,它们将被执行。如果还需要暂停信号,建议您在创建的每个视图中创建函数pause()resume(),并创建一个用于管理视图的对象-创建,销毁,暂停和恢复它们。
请注意,您需要自己处理视图和状态之间的过渡。另外,由于您可以创建自己的QML对象,因此值得考虑创建视图模板,然后仅继承它。

这将与您在其上部署应用程序的每个系统一起使用。

如果您还有其他问题,需要示例等,请考虑编辑问题或发表评论。

我要再次感谢BaCaRoZzo有用的提示。我将它们添加到此答案。

我创建了一个示例项目,试图模仿Android应用程序的生命周期。这将适用于所有操作系统。这只是一个示例,但我认为在发布源中可以使用类似的方法。但是,首先,您需要了解QML的性质。这是高级语言,已经由其他进程进行管理。它与Java截然不同。例如,查看有关后台进程使用的状态的docs片段:

Qt Quick应用程序通常不应在QML上处理此状态
水平。相反,您应该卸载整个UI并重新加载QML
应用程序再次变为 Activity 状态时,文件。

因此,如果您是我,我只会在检测到应用程序进入后台时才保存敏感数据。无需尝试并取消发布视图等。这是不必要的艰苦奋斗,因为QML并非为此而设计。相反,如果操作系统需要更多内存,则让您的应用被杀死。

您可以找到示例项目here。您可以根据需要使用它。它包含注释,以使您更好地了解发生了什么。

关于android - Qt表单(或Windows)的生命周期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37621827/

10-13 22:42