我即将开始一个大型 Qt 应用程序,它由较小的组件(一起工作的类组)组成。例如,项目中可能使用了一个对话框,但在集成到项目之前应该自行开发。我可以创建一个专用于该对话框的子文件夹,然后以某种方式将其合并到主项目中,而不是在某个地方的另一个文件夹中处理它然后将其复制到主项目文件夹中吗?
3 回答
这就是我要做的。假设我想要以下文件夹层次结构:
/MyWholeApp
将包含整个应用程序的文件。
/MyWholeApp/DummyDlg/
将包含独立对话框的文件,该对话框最终将成为整个应用程序的一部分。
我会开发独立的对话框和相关的类。我将创建一个包含在内的 Qt 项目文件。它将仅包含最终将成为整个应用程序一部分的表单和文件。
文件 DummyDlg.pri,位于 /MyWholeApp/DummyDlg/ 中:
# Input
FORMS += dummydlg.ui
HEADERS += dummydlg.h
SOURCES += dummydlg.cpp
上面的例子很简单。如果需要,您可以添加其他类。
为了开发独立对话框,我将创建一个专用于该对话框的 Qt 项目文件:
文件 DummyDlg.pro,在 /MyWholeApp/DummyDlg/ 中:
TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += .
include(DummyDlg.pri)
# Input
SOURCES += main.cpp
如您所见,此 PRO 文件包括上面创建的 PRI 文件,并添加了一个附加文件 (main.cpp),其中包含作为独立运行对话框的基本代码:
#include <QApplication>
#include "dummydlg.h"
int main(int argc, char* argv[])
{
QApplication MyApp(argc, argv);
DummyDlg MyDlg;
MyDlg.show();
return MyApp.exec();
}
然后,要将这个对话框包含到整个应用程序中,您需要创建一个 Qt-Project 文件:
文件 WholeApp.pro,在 /MyWholeApp/ :
TEMPLATE = app
DEPENDPATH += . DummyDlg
INCLUDEPATH += . DummyDlg
include(DummyDlg/DummyDlg.pri)
# Input
FORMS += OtherDlg.ui
HEADERS += OtherDlg.h
SOURCES += OtherDlg.cpp WholeApp.cpp
当然,上面的 Qt-Project 文件非常简单,但显示了我是如何包含独立对话框的。
是的,您可以编辑主项目 (.pro) 文件以包含子项目的项目文件。
对于 Windows 上的 Qt,您可以为所需的每个子项目创建 DLL。之后从主项目(exe)中使用它们没有问题。您必须处理依赖关系,但这并不是很困难。