Как мне сделать подпроект с Qt? - PullRequest
14 голосов
/ 14 сентября 2008

Я собираюсь начать с большого приложения Qt, которое состоит из более мелких компонентов (групп классов, которые работают вместе). Например, может быть диалоговое окно, которое используется в проекте, но должно быть разработано само по себе, прежде чем интегрироваться в проект. Вместо того, чтобы работать с ним в другой папке и затем копировать его в основную папку проекта, могу ли я создать подпапку, которая посвящена этому диалогу, а затем каким-то образом включить ее в основной проект?

Ответы [ 3 ]

20 голосов
/ 15 сентября 2008

Вот что я бы сделал. Допустим, я хочу следующую иерархию папок:

/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 выше очень прост, но показывает, как я включил автономное диалоговое окно.

1 голос
/ 14 сентября 2008

Да, вы можете отредактировать файл основного проекта (.pro), включив в него файл проекта вашего подпроекта.

Смотрите здесь

0 голосов
/ 14 сентября 2008

Для Qt в Windows вы можете создавать DLL для каждого подпроекта, который вы хотите. Нет проблем с их использованием из основного проекта (exe) после этого. Вам придется позаботиться о зависимостях, но это не очень сложно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...