سؤال

أعلم أن استخدام QML جديد تمامًا في QT وكنت أتساءل عما إذا كان ينبغي علي تصميم طلبي باستخدام QTDesigner أو QML. سوف أستخدم نمط MVC وقلقي الرئيسي إذا استخدمت QML لـ GUI هو أنه قد لا يكون من السهل دمجها داخل تطبيق C ++ الخاص بي.

لا تتردد في تقديم نصيحتك الشخصية ، وسأقدر ذلك كثيرًا. شكرًا لك!

هل كانت مفيدة؟

المحلول

QML مخصص في المقام الأول لمنصات المحمول. نظرًا لشبابها وقلقها في اتفاقيات واجهة المنصة المتنوعة ، فإنه يفتقر إلى عناصر تحكم قياسية مثل الأزرار وصناديق التحرير والسرد (ولكن انظر عناصر مشروع). إذا كنت على الهاتف المحمول ، أو يتطلب واجهة المستخدم الخاصة بك نمطًا بصريًا مخصصًا للغاية ، QML ربما تستحق النظر. كن مستعدًا لكثير من الأعمال الإضافية في تصميم أدوات التحكم المخصصة. لا يزال دمج QML و C ++ خشنًا جدًا في رأيي. أوصي شخصيًا باستخدام QML فقط للتطبيقات الأكثر بساطة ، فقط على منصات الهاتف المحمول ، وفقط مع JavaScript. في ظل الظروف المناسبة ، قد أفكر في كتابة عناصر QML مخصصة في C ++.

QT's C ++ API لن يذهب بعيدا في أي وقت قريب. تم تصميمه أيضًا مع وضع سطح المكتب في الاعتبار وسيقوم بعمل أفضل في تلبية توقعات المستخدم على منصات سطح المكتب. إذا كنت على سطح المكتب ، فإنني أوصي بالالتزام بـ C ++ والمصمم. حتى بعد نضوج QML قليلاً ، ربما لن يكون الحل الصحيح لمعظم تطبيقات سطح المكتب.

تحديث!

يبدو أن الأمور بداية التغيير. لم أجرب المكونات الجديدة بنفسي حتى الآن ، ويبدو أن الوثائق متفرق بعض الشيء (أو على الأقل ، بعيدًا عن الطريق) ، لكن هذا قد يؤدي في النهاية إلى إزالة أكبر حاجز لاستخدام QML على سطح المكتب. يبقى أن نرى ما إذا كان هذا سيحصل على الدعم على المدى الطويل ، ولكن إذا كنت على استعداد لقبول خطر أن تكون مبكرًا بالتبني ، أعتقد أن QML قد يكون الآن خيارًا قابلاً للتطبيق لتطبيقات سطح المكتب.

نصائح أخرى

سيكون من المفيد تجربة القليل من QML لاختبار ما إذا كان يناسب احتياجاتك.

إذا كنت تقوم ببناء واجهة مستخدم مخصصة للغاية مع واجهات ديناميكية ورسوم متحركة ، فإن QML تناسب المهمة ؛ إذا كنت تقوم ببناء تطبيق سطح مكتب تقليدي ، فمن المحتمل أن ترغب في التمسك بـ QT C ++ API.

فيما يتعلق بالتكامل بين QML و C ++ ، تم تصميم QML ليتم دمجها بسهولة مع كود C ++ ، والعديد من تطبيقات QML تستخدم نوعًا من الواجهة الخلفية C ++. من السهل حقن كائنات C ++ في واجهة QML ، أو كتابة عناصر QML مخصصة في C ++. القي نظرة على http://doc.qt.io/archives/qt-4.7/qtbinding.html و http://doc.qt.io/archives/qt-4.7/qml-extending-tutorial-index.html.

شيء واحد تفويته الإجابات أعلاه هو أن QML لديها ميزة/عيب مضرة من JavaScript لمنطق الأعمال (إذا لزم الأمر). أقوم حاليًا ببناء تطبيق (صغير إلى متوسط) بحجم سطح المكتب والآن يستمتع مستخدمي (2) من ألفا. أنا معجب بتعبير الإطار ومدى سرعة الحصول عليه واختباره. وبشكل عام ، أجد أنه من الأسرع أن أعمل مع محرر RAD (مصمم) وأنا أستمتع بوجود JavaScript كاحتفال على واجهة المستخدم الخاصة بي عندما أقوم بأشياء مزعجة مثل الحوام/التحقق من الصحة وما إلى ذلك ...

أعتقد أنها مسألة مدى ارتياحك للغة. إذا كانت C ++ هي لغة "Go to" الخاصة بك أكثر مما ستفضل المصمم. إذا كنت قادمًا من الويب (الاعتراف ، فأنا مهندس Java EE/MVC .NET DEV يقوم بالكثير من الواجهة الأمامية) ستجدها منعشة وسريعة.

كما يسمح ببعض الاستجابة التي يتوقعها المستخدمون هذه الأيام. وعموما سأعطيها زائد ضخمة. جربها-من المحتمل أن تكون بدلاً من ذلك من فضلك وتزعجها في نفس الإطار الزمني. ما زلت غاضبًا من أمرين (على وجه الخصوص) لكنني كنت أستمتع بجانب واجهة المستخدم الرسومية من الأشياء بطريقة نادراً ما أقوم بها على سطح المكتب.

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