سؤال

أرغب في كتابة تطبيق C ++ باستخدام QT ، ولكن قم ببناء نموذج أولي أولاً باستخدام Python ثم استبدال رمز Python تدريجياً بـ C ++.

هل هذا هو النهج الصحيح ، وما هي الأدوات (الروابط ، المولدات الربط ، IDE) التي يجب أن أستخدمها؟
من الناحية المثالية ، يجب أن يكون كل شيء متاحًا في مستودعات Ubuntu ، لذا لن يكون لدي ما يدعو للقلق بشأن الإصدارات غير المتوافقة أو القديمة وأن يتم إعداد كل شيء ببسيط aptitude install.
هل هناك أي وثائق شاملة حول هذه العملية أم يجب أن أتعلم كل مكون واحد ، وإذا كانت الإجابة بنعم ، فما هذا؟

في الوقت الحالي ، لدي خيارات متعددة لاتخاذها: QT Creator ، بسبب الانتهاء من Auto اللطيف وتكامل QT.
Eclipse ، لأنه يقدم الدعم لكل من C ++ و Python. اريك (لم يستخدمها بعد)

Pyside أثناء عمله مع Cmake و Boost.python ، لذلك من الناحية النظرية ، سيجعل استبدال رمز Python أسهل. Pyqt لأنه يستخدم على نطاق أوسع (المزيد من الدعم) وهو متاح كحزمة ديبان.

يحرر: بما أنني سأضطر إلى نشر البرنامج على أجهزة الكمبيوتر المختلفة ، فإن الحل C ++-سيتطلب 1-5 ملفات (البرنامج وبعض ملفات المكتبات إذا كنت أربطه بشكل ثابت) ، باستخدام Python سأضطر إلى إنشاء Pyqt/Pyside /sip/أيا كان على كل منصة وشرح كيفية تثبيت python وكل شيء آخر.

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

المحلول

أرغب في كتابة تطبيق C ++ باستخدام QT ، ولكن قم ببناء نموذج أولي أولاً باستخدام Python ثم استبدال رمز Python تدريجياً بـ C ++. هل هذا هو النهج الصحيح؟

هذا يعتمد على أهدافك. بعد القيام بهما ، أوصيك بالبقاء مع Python حيثما كان ذلك ممكنًا ومعقولًا. على الرغم من أن الأمر يتطلب بعض الانضباط ، إلا أنه من الممكن جدًا كتابة تطبيقات كبيرة للغاية في بيثون. ولكن ، عندما تجد النقاط الساخنة والأشياء التي يمكن التعامل معها بشكل أفضل في C ++ ، يمكنك بالتأكيد Port Parts إلى C ++.

هل هناك أي وثائق شاملة حول هذه العملية أم يجب أن أتعلم كل مكون واحد ، وإذا كانت الإجابة بنعم ، فما هذا؟

إليك ما أوصي به للقطع المختلفة:

محرر/IDE: استخدم أي محرر/IDE الذي تشعر بالراحة معه ، لكنني أوصي بشدة بواحد يدعم إعادة الطرد. إذا كنت مرتاحًا مع Eclipse ، فاستخدمه. إذا كنت ترغب في الذهاب بشكل أساسي إلى مسار C ++ ولم تكن معتادًا على أي محررين ، فقد تكون أفضل مع QTCreator. إريك هو Python IDE جيد للغاية مع دعم لإعادة البناء ، إلا إذا كنت ستقوم بالكثير من C ++ ، ألق نظرة عليه. والأفضل من ذلك ، رمز المصدر الخاص به هو مثال على استخدام وممارسات PYQT الجيدة.

معالجة:

الملخص السريع:

  1. اكتب تطبيقك في Python باستخدام pyqt
  2. عند تحديدها على أنها نقاط ساخنة ، قم بتحويل فصول Python Downed إلى C ++
  3. إنشاء روابط لتلك الفئات باستخدام رشفة
  4. استيراد المكتبات المحددة حديثًا في بيثون بدلاً من نظرائهم في بيثون
  5. استمتع بزيادة السرعة

التفاصيل العامة:

اكتب التطبيق في Python باستخدام PYQT. كن حذرا للحفاظ على الخير فصل المخاوف بحيث عندما تحتاج إلى منفذ قطع إلى C ++ ، فستكون منفصلة عن تبعياتها. عندما تحتاج أخيرًا إلى نقل شيء ما إلى C ++ ، اكتبه في C ++/QT ثم قم بإنشاء روابط له باستخدامه باستخدام رشفة. SIP لديه دليل مرجعي جيد في هذه العملية ، ولديك كل من pyqt كمثال.

تعيين:

C ++ - بالنسبة للعديد من التطبيقات ، تكون التبعيات بسيطة بما فيه الكفاية لدرجة أنه ليس من الصعب للغاية إنشاء مثبت باستخدام أداة مثل مثبت Nullsoft أو innosetup.

بيثون/pyqt - من الصعب تثبيت تطبيقات PYQT بسبب الاعتماد على Python واعتمادها على وجود مكتبات QT. قام شخص واحد بتوثيق جهوده هذا المنشور في Arstechnica. Py2exe يعمل بشكل جيد على Windows ويجب أن يعمل بشكل جيد. ime ، تجميد, ، الذي يأتي مع مصدر Python ، في بعض الأحيان لديه مشاكل في تحديد المكتبات المشتركة ضرورية حقًا وستنتهي أحيانًا إلى إنشاء ثنائي لا توجد تبعياته. يمكن صنع Py2App للعمل على Mac OS X.

ولكن أسوأ, ، ومع ذلك ، هو ترخيص PYQT/QT. إذا كنت تقوم بتطوير تطبيق تجاري ، فأنت بحاجة إلى الحصول على ترخيص تجاري PYQT (و QT) والتأكد من منع المستخدمين من تعديل المصدر بسهولة أو كتابة رمز بطريقة أخرى مقابل API PYQT/QT بسبب قيود الترخيص. بسبب ذلك ، أنشأ مؤلف PYQT أداة تسمى رقم المورد (على الرغم من أنه يحتوي على رخصة بيثون). داخل البائع هي أداة تسمى سيب يمكن استخدامها لإنشاء قابلة للتنفيذ تعتمد فقط على مترجم Python. ولكن ، إذا كنت ستذهب إلى هذا الحد ، فقد ترغب في تثبيت بيثون مخصص مع تطبيقك.

تنصل: أنا لم أستخدم البياض على الإطلاق ، لذلك لست متأكدًا من كيفية مقارنته بـ PYQT. لاحظ أيضًا التحذير التالي على موقعه على الويب:

Pyside هو عمل مستمر وليس مناسبًا لتطوير التطبيقات التي تتطلب استقرارًا على مستوى الإنتاج.

لكن ، في ملاحظة جيدة ، يعتزمون ، على الأقل الإصدار الأولي لـ "الحفاظ على توافق API مع PYQT." لذلك ، بصرف النظر عن روابط C ++ ، يمكنك التبديل بسهولة بين الاثنين لاحقًا.

نصائح أخرى

إذا كنت تتعلم فقط QT وترغب في الاستفادة من سرعة النماذج الأولية التي يوفرها لك Python ، فإنني أوصيك بعمل عينة باستخدام مشروع باستخدام PyQt. كما قلت ، هناك حزمة دبيان ، لذلك أنت مجرد بسيطة apt-get بعيدًا عن تقديم طلبك الأول.

أنا شخصيا استخدام gVim كمحرر Python/QT الخاص بي ، ولكن يمكنك حقًا استخدام أي محرر صديق للبيثون دون مشكلة كبيرة. أحببت WingIDE ولديهم إكمال تلقائي لـ QT ، ولكن بمجرد رشفة من Vim Kool-Aid ، من الصعب التبديل.

أود أن أقول أن PySide 95 ٪+ متوافق مع PyQt و ال LPGL الترخيص لطيف ، ولكن إذا كنت تحاول فقط نموذج أولي لتطبيق QT الخاص بك ، فلا أعتقد أن هناك سببًا حقيقيًا للاستخدام PySide. على الرغم من أنني أحب PySide مستندات أفضل ، يمكنك أيضًا استخدامها واستبدال جميع مراجع المكتبة بها PyQt.

اعتمادًا على تعقيد التطبيق الذي تقوم ببنائه ، قد يكون من الأفضل أن تبدأ من البداية مع إصدار C ++ بدلاً من محاولة القيام بمجموعة SIP إعادة إنشاء السحر الأسود. بمجرد أن يكون لديك فهم قوي لإطار QT ، يجب أن تكون قادرًا على التبديل بين C ++ وروابط Python بشكل جميل.

أود أن أرسم مستهلكات واجهة المستخدم قبل البدء في رمز النماذج الأولية. فيما يلي بعض الفوائد:

  • أسرع من ترميز النماذج الأولية حيث لا يوجد برمجة

  • املأ أجهزة واجهة المستخدم بسرعة ، مثل الجداول والأشجار ، بالبيانات

  • أضف أوصافًا وملاحظات إلى شاشاتك

  • سهولة دمج النماذج الاستيعابية في مستندات المواصفات دون الحاجة إلى التقاط الشاشات

  • التحقق من صحة مفاهيم تصميم واجهة المستخدم قبل التنفيذ

هناك الكثير من الأدوات التي يمكن أن تساعدك على القيام بذلك ، ولكن إذا كنت ستستخدم QT ، mockupui قد يكون اختيارًا جيدًا لأنه يجعل أجهزة تعويضات QT ذات الأساليب الأصلية لنظام التشغيل Windows 7،8 أو 10 مما يجعل النماذج النموذجية تبدو أكثر واقعية.

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