首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在创建QStatemachine对象之前创建QApplication对象可以吗?

在创建QStatemachine对象之前创建QApplication对象可以吗?
EN

Stack Overflow用户
提问于 2018-09-29 09:35:07
回答 1查看 181关注 0票数 1

我正在使用Qt5创建一个Qt应用程序。

以下是我的代码:

代码语言:javascript
复制
static QStateMachine *myStateMachine = new QStateMachine(nullptr);

我只想创建一次QStateMachine,一直使用同一台机器。

但是,我了解到,在QObjects instantiated.You能够阅读Qt文档有关QApplication的详细描述之前,不应该实例化所有的QApplication。

我的问题是:

为什么在QObjects实例化之前不应该实例化所有的QApplication?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-30 15:08:00

蒂亚戈·马西埃拉( Thiago )在Qt兴趣列表上的2014年线程中写道:

在创建QCoreApplication之前不支持Qt。您的用例不受支持,因此不需要回答。 别这么做。 注意:医生错了。

他是个长期的Qt维护者 (并在特罗尔技术公司工作)。因此,我一般会听从他的建议。

我想他的意思是,在不同的系统上--特性最终需要一些初始化的机会。它可能不是所有的系统,也可能是在以后的版本中引入的需求。因此,Qt开发人员可能保留使任何给定的特性要求it...and的权利,不会保证系统中的任何东西在初始化之前都能工作。

(注:这类类似于在C++中的概念)

然而,他稍微软化了立场,在以后的一篇文章中

这是否意味着静态对象也不受支持?不支持,但大多数情况下它们都起作用。我们还将在创建QCoreApplication之前,在解析命令行和其他设置过程时修复main()中可能出现的错误。 小心点,因为有些事情是行不通的。例如,QString::For Local8Bit在QCoreApplication之前不能工作。

要点是,给出今天QApplication实例化之前可以做的事情列表应该被认为是误导。他们不想列那份名单。

如果你发现你真的必须这样做,而且你看起来没有问题,那就做好准备,让它在将来的发行版中崩溃(或者甚至在另一台机器上)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52567044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档