ما هو واجهة برمجة التطبيقات (API) الأصلية لواجهة المستخدم الرسومية (GUI) في Linux لـ C++؟ وما الفرق عن WinAPI؟
مرحباً بالجميع. أنا مطور C++ مبتدئ، أنتقل من Windows إلى Linux. في Windows اعتدت كتابة تطبيقات النوافذ البسيطة باستخدام WinAPI — كل شيء واضح هناك: تنشئ نافذة عبر CreateWindow، وتعالج الرسائل في حلقة، وترسم الأزرار وحقول الإدخال. كل هذا جزء من نظام التشغيل نفسه، ولا حاجة لأي مكتبات خارجية.\n\nالآن أنا على Ubuntu وأريد كتابة برنامج بسيط مماثل بلغة C++ — نافذة تحتوي على زوج من الأزرار وحقل نصي. لكني في حيرة: Linux لا يحتوي على "API أصلي" موحد لواجهة المستخدم الرسومية (GUI)، كما فهمت. يتحدثون عن Xlib، GTK، Qt، لكنها ليست نفس الشيء. Xlib هو بروتوكول منخفض المستوى لنظام X Window System، لكنه لا يوفر عناصر تحكم جاهزة (أزرار، حقول إدخال). GTK وQt هما إطارات عمل (frameworks) متعددة المنصات، وليست "أصلية" بهذا المعنى.