أتمتة أداة كيو تي

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



لقد بدأ كل شيء بحقيقة أنه كان من الضروري نشر العديد من المشاريع المختلفة وفي كل مرة لم أكن أرغب في كتابة العديد من الرسائل في وحدة التحكم (هنا يتعلق الأمر بالجيل الشاب!). نظرًا لتجربتي في qt و qml ، قررت مسح طلبي.


كانت المتطلبات الأساسية واضحة على الفور - يجب أن يقوم البرنامج بإجراء عمليات نشر ومثبتات لنظام Windows. كيو تي لديها windeployqt وإطار عمل كيو تي المثبت لهذه المهام. أيضًا ، أردت على الفور إضافة إنشاء تلقائي لملف qmldir وملفات الترجمة.


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


set PATH=G:\Qt\5.13.2\mingw73_64/bin;G:\Qt\Tools\mingw730_64/bin;%PATH%\n 

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


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




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




بعد الانتهاء من التصميم ، بدأ يعيد تدريجيا كل فائدة. لم تكن هناك أي تغييرات تقريبًا في windeployqt ، ولم تتم إضافة سوى وسيطة واحدة. وأضاف Qmldir وظائف لاختيار المعدلات لكل ملف واختيار الإصدار ، وتوليد الملف. * Qmltypes مع التسجيل التلقائي في qmldir. تم إجراء معظم التغييرات على برنامج التثبيت ، وهناك فقط مجموعة من المعلمات ، مع تحديد وتكوين كل حزمة وملف config.xml مع مستودعات التخزين عن بُعد. يقوم البرنامج نفسه بإنشاء بنية المجلدات وملفات التكوين (config.xml و package.xml) ويملأها ، كما يتم نسخ الحزم نفسها إلى مجلد البيانات. يمكنك إنشاء 3 أنواع من أدوات التثبيت: فقط في حالة عدم الاتصال بالإنترنت ، فقط عبر الإنترنت ودمجها ، وهناك أيضًا 4 أنواع عندما يتم استبعاد حزم معينة من برنامج التثبيت ، لكنني قررت أن هذه الوظيفة ليست مهمة في البداية وسأضيفها في الإصدارات المستقبلية. بالنسبة إلى المثبتات عن بُعد ، تحتاج إلى إنشاء مستودعات باستخدام repogen.exe ، كما يعرف البرنامج كيفية القيام بذلك.


لكي يعمل البرنامج ، تحتاج إلى تحديد مجلد Qt على الكمبيوتر ، والمسار إلى المحول البرمجي في رقم إصدار Qt والمسار إلى المحول البرمجي في المجلد Tools. أفهم أن هذا ليس هو الحل الأكثر ملاءمة ، وبالتالي في الإصدارات المستقبلية ، سأقوم بتحليل مجلد Qt ، مع اختيار المترجم عبر ComboBox.


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


جيثب مستودع الارتباط


ملحوظة: هذا هو أول برنامج لي ، أصبح متاحًا للجمهور العام ، وسأكون سعيدًا لجميع التعليقات. كما هو الحال دائما ، النقد السليم هو موضع ترحيب. سأكون سعيدًا جدًا بمقترحات زيادة وظائف البرنامج.

Source: https://habr.com/ru/post/ar482682/


All Articles