Avatar ·

ما هو واجهة برمجة تطبيقات GUI الأصلية في Linux لـ C++؟ وما الفرق عن WinAPI؟

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