كيف أقوم بإنشاء مشروع فرعي باستخدام كيو تي؟

StackOverflow https://stackoverflow.com/questions/61405

  •  09-06-2019
  •  | 
  •  

سؤال

أنا على وشك البدء في تطبيق 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) ليشمل ملف مشروع مشروعك الفرعي.

انظر هنا

بالنسبة لـ Qt على Windows، يمكنك إنشاء ملفات DLL لكل مشروع فرعي تريده.لا مشكلة في استخدامها من المشروع الرئيسي (exe) بعد ذلك.سيتعين عليك الاهتمام بالتبعيات ولكن الأمر ليس صعبًا للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top