ما هي هذه المكتبة ولماذا هي مطلوبة
\n\nQt هو إطار عمل قوي ومتعدد المنصات لتطوير التطبيقات بلغة C++. يسمح بإنشاء واجهات رسومية (GUI)، وأدوات مساعدة لوحدة التحكم، وتطبيقات الشبكة، وبرامج الوسائط المتعددة، وغير ذلك الكثير. يقوم Qt بتجريد المطور من خصوصية نظام التشغيل، من خلال توفير واجهة برمجة تطبيقات (API) موحدة لأنظمة Windows وmacOS وLinux وAndroid وiOS.
\n\nلماذا نحتاج Qt؟
\n- \n
- تعدد المنصات: كود واحد يعمل على أنظمة تشغيل مختلفة دون تغييرات. \n
- نظام بيئي غني: يتضمن وحدات للعمل مع قواعد البيانات (Qt SQL)، والشبكات (Qt Network)، ومحركات الويب (Qt WebEngine)، والوسائط المتعددة (Qt Multimedia)، والرسومات ثلاثية الأبعاد (Qt 3D)، إلخ. \n
- الأداء: مكتوب بلغة C++، مما يضمن سرعة تنفيذ عالية. \n
- نظام الإشارات والفتحات: آلية فريدة لربط الكائنات ومعالجة الأحداث. \n
- أدوات تحكم جاهزة: أزرار، جداول، أشجار، محررات نصوص، مربعات حوار، وغير ذلك الكثير. \n
- أدوات التطوير: Qt Creator — بيئة تطوير متكاملة (IDE) مع محرر نماذج مرئي. \n
يُستخدم Qt في مشاريع مثل KDE (بيئة سطح مكتب Linux)، وTelegram Desktop، وVirtualBox، وAutodesk Maya، وVLC Media Player، والعديد من المشاريع الأخرى.
\n\nالتثبيت
\n\nعلى عكس اللغات المفسرة (Python، JavaScript)، لا يتم تثبيت Qt لـ C++ عبر pip install أو npm install. إنها مكتبة أصلية تتطلب الترجمة وإعداد المشروع.
الطريقة 1: التثبيت عبر المثبت الرسمي (موصى به)
\n- \n
- انتقل إلى الموقع الرسمي لـ Qt. \n
- قم بتنزيل Qt Online Installer لنظام التشغيل الخاص بك. \n
- قم بتشغيل المثبت وقم بتسجيل الدخول إلى حسابك (أو أنشئ حسابًا مجانيًا). \n
- اختر إصدار Qt (على سبيل المثال، Qt 6.5.3) والمكونات:\n
- \n
- Qt (Desktop) — لتطبيقات سطح المكتب. \n
- Qt Creator — بيئة التطوير المتكاملة (IDE). \n
- المترجمات (MinGW لنظام Windows، GCC/Clang لنظامي Linux/macOS). \n
\n - أكمل التثبيت. \n
الطريقة 2: التثبيت عبر مديري الحزم (Linux/macOS)
\nUbuntu/Debian:
\nsudo apt update\nsudo apt install qt6-base-dev qt6-tools-dev qtcreator\n\nmacOS (Homebrew):
\nbrew install qt@6\nbrew install qt-creator\n\nWindows (vcpkg):
\nvcpkg install qt6\n\nالطريقة 3: CMake + FetchContent (للمشاريع)
\nإذا كنت تستخدم CMake، يمكنك تنزيل Qt تلقائيًا:
\ninclude(FetchContent)\nFetchContent_Declare(qt6\n GIT_REPOSITORY https://github.com/qt/qt6.git\n GIT_TAG v6.5.3)\nFetchContent_MakeAvailable(qt6)\n\nبداية سريعة مع مثال كود
\n\nلنقم بإنشاء نافذة بسيطة بها زر يغلق التطبيق.
\n\nالخطوة 1: قم بإنشاء ملف main.cpp
\n#include <QApplication>\n#include <QPushButton>\n\nint main(int argc, char *argv[]) {\n QApplication app(argc, argv);\n\n QPushButton button("إغلاق التطبيق");\n button.resize(200, 100);\n button.show();\n\n // ربط إشارة clicked() للزر بفتحة quit() للتطبيق\n QObject::connect(&button, &QPushButton::clicked, &app, &QApplication::quit);\n\n return app.exec();\n}\n\nالخطوة 2: قم بإنشاء ملف CMakeLists.txt
\ncmake_minimum_required(VERSION 3.16)\nproject(MyFirstQtApp)\n\nset(CMAKE_CXX_STANDARD 17)\nset(CMAKE_AUTOMOC ON)\n\nfind_package(Qt6 REQUIRED COMPONENTS Widgets)\n\nadd_executable(MyFirstQtApp main.cpp)\n\ntarget_link_libraries(MyFirstQtApp Qt6::Widgets)\n\n