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