在Qt项目中我们通常会找到一个project.pro
文件,该main.cpp
和几个标题、源和*.ui
文件,包含为应用程序/项目注入生命和功能的所有资源。
如果还有更多的话“按下按钮即可显示‘你好,世界!’”,可能存在用于存储数据和配置文件等的目录。
我的问题是(尽管确切的答案取决于具体情况):
main.cpp 在 Qt 项目(Qt Widgets 应用程序)中的一般作用是什么?
为了明确我的意思:
- Is the
main.cpp
启动应用程序的唯一目的是什么?
- 如果没有,那么该部门要执行的典型任务是什么?
main.cpp
?
- 说到配置文件 - 考虑应用程序有一个主窗体(也许还有由主窗体实例化的其他类/对话框)了解从文件检索的一些配置数据。初始化会发生在
main.cpp
或在MainForm
。简而言之:“把事情安排好……”应该放在哪里(根据当前问题)?
- 不管你想说什么...
(注意:完整的答案应该包含@thokra的评论,也就是说main.cpp
是一个文件名,程序入口点在具有该名称的文件中的出现只是约定。但在 Qt 程序和 C++ 中,尝试将程序的入口点放在具有该名称的文件中是一个相当遵守的约定。)
一类是全局挂钩和设置的注册。想想诸如此类的事情qInstallMessageHandler http://qt-project.org/doc/qt-5/qtglobal.html#qInstallMessageHandler, or QTextCodec::setCodecForCStrings http://qt-project.org/doc/qt-4.8/qtextcodec.html#setCodecForCStrings.
任何的初始化non-Qt您的应用程序想要理所当然的库将是另一个领域。
如果您的程序有一个仅创建和销毁一次的主窗口对象,那么将“运行一次”代码放入其构造函数/析构函数中似乎同样合适。但问问自己到底是什么让你的应用程序只允许它有一个主窗口。为什么不能在同一个进程中拥有两个?即使这不是当今需求的一部分,它也可以暗示架构边界。
我将从个人经验中提到,如果您尝试创建一个从 QApplication 派生的类,然后将全局运行一次代码放入该派生类的构造函数和析构函数中,这比听起来更棘手(特别是如果您生成线程并在该构造函数中创建小部件)。所以我认为在大多数情况下你不应该从 QApplication 派生。我坚持了下来,因为我正在申请框架...但要避免这种情况,您的运行一次代码就会进入 main.cpp 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)