logo

واجهة المستخدم الرسومية C++

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

ما هي واجهة المستخدم الرسومية؟

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

لماذا C++ لتطوير واجهة المستخدم الرسومية؟

C++ هي لغة برمجة قوية. بمساعدة لغة C++، يمكننا تطوير أنظمة برمجية معقدة، بما في ذلك واجهات المستخدم الرسومية. تتضمن بعض الأسباب التي تجعل C++ خيارًا شائعًا لتطوير واجهة المستخدم الرسومية ما يلي:

    أداء:C++ هي لغة عالية الأداء يمكنها تنفيذ التعليمات البرمجية بسرعة وكفاءة. إنه مثالي لتطوير واجهة المستخدم الرسومية.الدعم عبر الأنظمة الأساسية:يمكن ترجمة C++ لأنظمة تشغيل متعددة. إنه خيار رائع لبناء تطبيقات واجهة المستخدم الرسومية عبر الأنظمة الأساسية.مجموعة واسعة من المكتبات والأطر:تحتوي لغة C++ على مجموعة كبيرة من المكتبات والأطر المتاحة لتطوير واجهة المستخدم الرسومية. إنه يمنح المطورين الكثير من الخيارات عندما يتعلق الأمر ببناء تطبيقاتهم.

المكتبات والأطر لتطوير واجهة المستخدم الرسومية C++

هناك العديد من المكتبات والأطر المتاحة لتطوير واجهة المستخدم الرسومية C++. دعونا نلقي نظرة على بعض الخيارات الأكثر شعبية.

1. كيو تي

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

cpld مقابل fpga

البرنامج 1:

 #include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); char myoutput [60]; int stringlength, x=4, y=10; stringlength = sprintf(myoutput, '%d plus %d equals %d', x, y, x+y); printf ('[%s] is a string that is %d characters long.
', myoutput, stringlength); return a.exec(); } 

انتاج:

واجهة المستخدم الرسومية C++

توضيح

يستخدم برنامج C++ هذا وظيفة sprintf لتنسيق سلسلة ووظيفة printf لطباعة السلسلة المنسقة إلى وحدة التحكم. فهو يعلن عن بعض المتغيرات، ويعين لها قيمًا، وينسق سلسلة، ويخرجها إلى وحدة التحكم.

2.wxWidgets

wxWidgets عبارة عن مجموعة أدوات واجهة المستخدم الرسومية الشائعة الأخرى عبر الأنظمة الأساسية. يوفر مجموعة من الأدوات والمكتبات لبناء تطبيقات واجهة المستخدم الرسومية الحديثة. وهو يدعم مجموعة واسعة من الأنظمة الأساسية، بما في ذلك Windows وLinux وmacOS.

قفل تطبيق أندرويد

البرنامج 2:

 #include 'wx/wx.h' #include 'wx/wxprec.h' #include 'hello.h'IMPLEMENT_APP(HelloWorldApp)bool HelloWorldApp::OnInit() { wxFrame *frame = new wxFrame((wxFrame*) NULL, -1, _T('Hello wxWidgets World')); frame->CreateStatusBar(); frame->SetStatusText(_T('Hello World')); frame->Show(true); SetTopWindow(frame); return true; } 

انتاج:

واجهة المستخدم الرسومية C++

توضيح

كيفية حقن فئة مجردة وهمية

هذا هو رمز wxWidgets الأساسي الذي يقوم بإنشاء نافذة بشريط الحالة ويعرض النص 'Hello World'. يتم تعريف فئة HelloWorldApp لتنفيذ التطبيق. تقوم الدالة OnInit() بتهيئة التطبيق وإنشاء إطار جديد بالعنوان المحدد. تقوم الدالة CreateStatusBar() بإنشاء شريط حالة في أسفل النافذة، وتقوم وظيفة SetStatusText() بتعيين النص الذي سيتم عرضه في شريط الحالة. أخيرًا، تُظهر الدالة Show() النافذة، وتقوم SetTopWindow() بتعيين الإطار كنافذة المستوى الأعلى.

3. FLTK

إنها تعني مجموعة أدوات Fast Light. إنها مجموعة أدوات واجهة المستخدم الرسومية عبر الأنظمة الأساسية. فهو يوفر مجموعة خفيفة وسريعة من الأدوات والمكتبات لبناء تطبيقات واجهة المستخدم الرسومية. إنه خيار شائع لبناء التطبيقات التي تتطلب مساحة صغيرة أو ذات متطلبات أداء صارمة.

البرنامج 3:

 #include #include #include using namespace fltk; int main(int argc, char **argv) { Window *window = new Window(300, 180); window->begin(); Widget *box = new Widget(20, 40, 260, 100, 'Hello, World!'); box->box(UP_BOX); box->labelfont(HELVETICA_BOLD_ITALIC); box->labelsize(36); box->labeltype(SHADOW_LABEL); window->end(); window->show(argc, argv); return run(); } 

انتاج:

واجهة المستخدم الرسومية C++

توضيح

كيفية حقن فئة مجردة وهمية

يستخدم هذا الرمز مكتبة fltk لإنشاء نافذة تحتوي على عنصر واجهة مستخدم مربع مُسمى يقول 'Hello, World!'. يحتوي المربع على خط مائل غامق وحجم 36 وملصق ظل. يبلغ حجم النافذة 300 × 180 بكسل ويتم عرضها على الشاشة باستخدام الدالة show(). تبدأ الدالة run()‎ حلقة الحدث الرئيسية للتعامل مع إدخال المستخدم وتبقي النافذة مرئية حتى يقوم المستخدم بإغلاقها.

4. إس دي إل

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

البرنامج 4:

 #include #include #include int main(int argc, char *argv[]) { // returns zero on success else non-zero if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { printf('error initializing SDL: %s
', SDL_GetError()); } SDL_Window* win = SDL_CreateWindow('GAME', SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1000, 1000, 0); while (1) ; return 0; } 

انتاج:

واجهة المستخدم الرسومية C++

توضيح

طريقة سلسلة فرعية جافا

هذا هو برنامج SDL أساسي مكتوب بلغة C. يقوم بتهيئة مكتبة SDL باستخدام SDL_Init()، وإنشاء نافذة باستخدام SDL_CreateWindow()، والدخول في حلقة لا نهائية باستخدام while(1). لا تفعل الحلقة أي شيء وتنتظر فقط حتى يقوم المستخدم بإغلاق النافذة أو الخروج من البرنامج. إذا كان هناك أي خطأ في تهيئة SDL، فستتم طباعة رسالة خطأ باستخدام الدالة printf(). يعود البرنامج 0 عند النجاح.

خاتمة

توفر لغة C++ لغة برمجة قوية وفعالة لتطوير تطبيقات واجهة المستخدم الرسومية. لديها مجموعة واسعة من المكتبات والأطر. لدى المطورين الكثير من الخيارات عندما يتعلق الأمر ببناء تطبيقاتهم. سواء اختار المطور Qt أو wxWidgets أو FLTK أو SDL، فيمكنه إنشاء تطبيقات واجهة المستخدم الرسومية الغنية والحديثة التي تعمل على منصات مختلفة.