سؤال

لدي الآن فكرة لبدء تطوير إطار عمل شبيه بـ Qt/GTK+، لكني أريد معرفة بعض الأشياء قبل أن أبدأ في إنشاء هذا المشروع:

  • ما هو هيكل GTK+ وQt؟
  • هل أحتاج إلى تطوير مدير النوافذ لبناء الإطار الخاص بي؟
  • بعض الموارد للبدء؟
هل كانت مفيدة؟

المحلول

يبدو ذلك بمثابة مشروع كبير، على الأقل كمشروع أولي.

لست متأكدًا مما تقصده بـ "الهيكل" على سبيل المثال.جتك +.يمكنك ان ترا ال التسلسل الهرمي للكائن بالنسبة لـ GTK+، فهذا يخبرك على الأقل بكيفية ارتباط الكائنات المنفذة (GTK+ عبارة عن واجهة برمجة تطبيقات موجهة للكائنات) ببعضها البعض.يمكنك تخمين كيفية بناء الكود من خلال تلك المعلومات.

ولا، لا تحتاج إلى كتابة مدير النوافذ الخاص بك؛تهتم مجموعات الأدوات بشكل أساسي بما يحدث داخل windows، وليس مع إدارة النوافذ نفسها.بالطبع يمكنك أن تقرر أن "المنصة" الخاصة بك يجب أن يكون لها نطاق أوسع، وأن تتضمن إدارة المستودعات.

نصائح أخرى

يعد تطوير إطار عمل واجهة المستخدم الرسومية/التطبيق مهمة مهمة.قد ترغب في أن تكون جداً واضح حول سبب حاجتك لكتابة إطار عمل آخر.

كلا المشروعين اللذين ذكرتهما مفتوحان المصدر.لماذا لا تبدأ هناك؟

  1. جتك:جيت استنساخ جيت://git.gnome.org/gtk+
  2. كيو تي:git Clone git://gitorious.org/qt/qt.git

إد أنت تسأل ما هي بنية GTK وQt، وما إذا كنت بحاجة إلى كتابة مدير الأرملة الخاص بك (الإجابة:لا) وكيفية البدء.الإجابات على الأولين على الأقل موجودة في الكود المصدري.ولا تنس أن الممارسين العظماء في أي مجال يتعلمون من خلال مشاهدة الآخرين.رمز القراءة لا يختلف.

ستكون كتابة إطار عمل واجهة المستخدم الرسومية/التطبيق تجربة تعليمية رائعة، ولكن حتى إطار عمل التطبيق الصغير إلى حد ما سيكون مهمة كبيرة جدًا، وليس شيئًا يجب عليك معالجته حقًا حتى تصبح خبيرًا إلى حد ما في كتابة التطبيقات باستخدام العديد من الأطر ومجموعات أدوات الأدوات الأخرى .

لقد فعلت شيئًا كهذا ذات مرة، في السنوات الأولى من هذا العقد.كان ذلك بعد أن كنت أبرمج لنظام التشغيل Mac لأكثر من 15 عامًا، ولنظام التشغيل Windows أكثر من 10 سنوات، وقمت بالبرمجة مباشرةً إلى واجهات برمجة التطبيقات الأصلية للرسومات والأحداث وعناصر واجهة المستخدم، بالإضافة إلى مجموعات الأدوات المتنوعة الموجهة للكائنات بما في ذلك PowerPlant وMFC. و ماك اب.عندما بدأت العمل على تطبيق PalmOS، أمضيت بضعة أسابيع في كتابة إطار عمل تطبيق صغير جدًا على غرار PowerPlant.لكنني لم أكن لأنجح على الإطلاق دون تلك العقود من الخبرة الواسعة والعميقة في العديد من أنظمة واجهة المستخدم الرسومية.

يعد القيام بذلك لنظام التشغيل Linux/X11 بمثابة عمل أكثر.وذلك لأنه، على عكس نظامي التشغيل Mac OS وWindows، لا يوفر X11 أو Linux أدوات مدمجة لواجهة المستخدم، أو الكثير من العناصر الأولية للرسومات أو إمكانات تخطيط النص.GTK+ جزء من نظام جنوم البيئي؛فهو يوفر الأدوات، ويحصل على قائمة انتظار الرسائل والاتصالات الداخلية من GObject، ويعتمد على GDK لتجريد وتبسيط اتصالات الرسومات والأحداث الخاصة به باستخدام X11، ويستخدم Pango وCairo لعرض النص وتخطيطه.أنا أعمل من خلال هذا النظام، وربما يمثل عشرات من الأشخاص على مدار سنوات من العمل الشاق من قبل الكثير من الأشخاص الأذكياء حقًا.وأنا متأكد من أن Qt مشابه جدًا.

لذا، إذا كنت تريد حقًا القيام بذلك، فإنني أنصحك بما يلي:

  1. كتابة البرامج مع كثير من مجموعات أدوات التطبيقات والأدوات المختلفة، على أنظمة تشغيل متعددة.سيساعدك ذلك على التعلم ليس فقط كيف تعمل مثل هذه الأنظمة، ولكن لماذا لقد تم تصميمها كما هي.وسوف يعطيك بعض الشعور بما يعمل بشكل جيد، وما يعمل بشكل سيئ.
  2. المساهمة في إصلاحات الأخطاء أو الميزات الجديدة في واحد أو أكثر من أطر العمل المتنوعة مفتوحة المصدر.GTK+ لديه قائمة المهام للمبتدئين للعمل عليها.إطار آخر رائع مفتوح المصدر هو wxWidgets.
  3. كن مبرمج C/C++ على مستوى الخبراء.

عندما تقوم بذلك لبضع سنوات، سيكون لديك الخبرة المناسبة للتعامل مع إطار العمل الخاص بك.

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

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

هذا ليس حقًا علم الصواريخ الذي يصوره الناس هنا.لقد صنعت الألعاب مجموعات أدوات واجهة المستخدم الرسومية البسيطة جدًا الخاصة بها لسنوات.يمكنك تجربة هذا النهج أيضًا.لقد قمت بتصميم واجهة مستخدم رسومية بسيطة فوق محرك اللعبة من قبل.يمكن أن تكون الأزرار والحقل النصي مجرد نقوش متحركة.

لكن نعم، إذا كنت تريد صنع شيء ينافس Gtk+ وQt، انسَ الأمر.وهذا جهد جماعي على مدى سنوات عديدة.

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