我即将开始开发一个大型 Qt 应用程序,该应用程序由较小的组件(一起工作的类组)组成。例如,项目中可能使用了一个对话框,但在集成到项目中之前应该单独开发。我可以创建一个专用于该对话框的子文件夹,然后以某种方式将其合并到主项目中,而不是在某个地方的另一个文件夹中处理它,然后将其复制到主项目文件夹中吗?

有帮助吗?

解决方案

这就是我要做的。假设我想要以下文件夹层次结构:

/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)中使用它们就没有问题了。您必须处理依赖关系,但这并不是很困难。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top