مقدمة تعريفية بـ wxWidgets

نشره Fahad في
Image removed. إعداد: فهد السعيدي wxWidgets هي أداة لكتابة تطبيقات سطح المكتب أو المحمول بواجهات رسومية للمستخدم GUI. وهي إطار عمل يقدم الكثير من التجهيزات و الخدمات و يزود تطبيقك بالمظهر الأصلي للنظام. مكتبة wxWidgets تحتوي على مجموعة كبيرة من الصفوف و الدوال للمبرمج للاستخدامها و تخصيصها ، فالتطبيقات بشكل نموذجي تعرض نوافذ تحتوي على متحكمات قياسية، ومن المحتمل أن ترسم صور ورسوميات خاصة، و تستجيب إلى المدخلات من الفأرة و لوحة المفاتيح، أو المصادر الأخرى. و أيضا يمكنها التواصل مع العمليات الأخرى أو توصل برامج أخرى. بكلمات أخرى، wxWidgets تسهل للمبرمج نسبيا كتابة تطبيق يقدم كل الأشياء التي تقدمها التطبيقات الحديثة الأخرى. يطلق على wxWidgets أداة تطوير GUI ، ولكن في الحقيقة هي أكثر من ذلك، وتملك مميزات مفيدة في شتى مجالات تطوير التطبيقات. وبسبب أن كل برنامج wxWidgets يحتاج إلى قابلية للنقل بين المنصات المختلفة وليس فقط الجزء الرسومي GUI ، فإن مكتبة wxWidgets تقدم صفوف للتعامل مع الملفات و الدفق و تعدد المسالك ، و إعدادات التطبيق و تواصل العمليات الداخلية، والمساعدة المباشرة ، و وصول لقواعد البيانات، و الكثير. لماذا أستخدم wxWidgets؟ أحد المناطق حيث تختلف مكتبة wxWidgets عن بقية أُطر العمل، مثل MFC أو OWL، أنها متعددة المنصات بشكل طبيعي. مكتبة wxWidgets تملك واجهة برمجة التطبيق API التي هي نفسها أو قريبة جدا من التشابه في كل المنصات المدعومة. هذا يعني أنه يمكنك كتابة تطبيق على منصة الويندوز ، على سبيل المثال، ومع تغييرات قليلة ( إذا وجدت ) تعيد بناءه على اللينكس أو ماكنتوش Mac OS X. هذه الميزة تملك فائدة مادية ضخمة بالمقارنة بإعادة كتابة التطبيق بشكل كامل لكل منصة، و هذا يعني أيضا أنك لست بحاجة إلى تعلم API مختلف لكل منصة. علاوة على ذلك، تساعدك على تهيئة تطبيقاتك للتغيرات المستقبلية. مثلما أن أرض الحوسبة تتغير باستمرار فإن wxWidgets تتغير معها، بما يسمح لتطبيقك أن يعمل و يستغل مميزات الأنظمة الأجد. مميزة أخرى خاصة بمكتبة wxWidgets أنها تقدم مظهر و إحساس أصلى من النظام الذي تعمل عليه. بعض أطر العمل تستخدم نفس كود الأداة لتشغيلها على كل الأنظمة، ربما بثيم تجميلي يحاكي مظهر الأصلي لكل منصة. بالمقارنة مع مكتبة wxWidgets فإنها تستخدم الأدوات الأصلية حيثما أمكن ( و تملك مجموعة أدوات خاصة بها في حالات أخرى ) لذا هذا ليس فقط يعطي التطبيق المظهر الأصلي على المنصات الرئيسية ، ولكن في الواقع هي أصلية بنفسها. هذه الميزة مهمة جدا لقبول المستخدم لأنه حتى أصغر اختلاف - لا يلحظ في الغالب - في طريقة سلوك التطبيق بالمقارنة مع سلوك القياسي للنظام التشغيلي ؛ يمكن أن ينشيء نفرة لدى المستخدمين ، و للتدليل الصورة التالية توضح تطبيق مكتوب بـ wxWidgets يطلق عليه Audacity وهو برنامج لتحرير الصوتيات ، يعمل على ويندوز إكس بي. Image removed. إنه تطبيق ويندوز بأصالة، بعناصر رسومية مثل ألسنة التبويب و أشرطة التمرير و القائمة المنسدلة. بنفس الطريقة الصورة التالية تظهر Audacity يعمل كتطبيق Mac OS X بمظهر Aqua المتوقع. كما هو واضح لا يوجد فيه أشرطة القوائم مرفق مع نافذة Audacity بسبب أن Mac OS متفق على عرض شريط القائمة في أعلى القائمة. Image removed. وأخيرا في الصورة التالية يظهر Audacity كتطبيق +GTK يعمل على لينكس ردهات. Image removed. لماذا لا نستخدم جافا فقط؟ بينما جافا رائعة لتطبيقات الويب إلا أنها ليست أفضل خيار لسطح المكتب. في العموم، التطبيقات المبنية على ++C التي تستخدم wxWidgets أسرع و تملك مظهر أكثر أصالة ، وأسهل في التثبيت بسبب أنها ليست تعتمد على حضور الآلة اﻷفتراضية لجافا. و أيضا ++C تسمح بقدر كبير من الوصول إلى الوظائف ذات المستوى المنخفض وأسهل تكاملها مع كود ++C و C الموجود مسبقا. كل هذه الأسباب أنتجت قلة استخدام جافا لبناء تطبيقات سطح المكتب. مكتبة wxWidgets هي مشروع مفتوح المصدر. طبيعيا ، هذا يعني أن كلفة استخدام wxWidgets لا شيء ( مالم تشعر بأنك كريم وتتبرع إلى المشروع !)، ولكنها أيضا تملك فلسفة مهمة و أهمية إستراتيجية. برامج مفتوحة المصدر تملك عادة دائمة أنها مكافئة للبرامج التجارية المملوكة. كمطور يستخدم wxWidgets فلابد أن تعلم أن الكود الذي تعتمد عليه لن يختفي أبدا. يمكنك باستمرار إصلاح أي مشكلة بنفسك بتغيير شفرة المصدر. كذلك يمكن أن تصبح المشاركة في المجتمع المفتوح أكثر مرحا من التواصل مع الموظفين في شركات الدعم. المشاركون في مشاريع مفتوحة المصدر يحبون ما يفعلونه و لا يمكن أن ينتظروا لإشاعة معرفتهم ، بينما أفراد الدعم في الشركات ليسوا دائما متحمسون بذاك القدر. عندما تستخدم wxWidgets ، فأنت تستخدم تجمع مواهب مدهش ، مع مشاركين يأتون من نطاق واسع من الخلفيات. نواحي عديدة من تطوير التطبيقات التي يمكن أن تكتبها بنفسك بشكل مرهق غلفت بواسطة هؤلاء المطورين في صفوف سهلة الاستخدام يمكنك أن تدرجها ضمن كودك. مجتمع المستخدمين النشط سيساعدك على القوائم البريدية و ستستمتع بالنقاشات ليس فقط حول wxWidgets ولكن غالبا حول الأمور الأخرى القريبة من قلوب المطورين الخبراء وغير الخبراء معا. ربما في يوما ما ستنضم إلى نجاح wxWidgets وتصبح مشارك بنفسك ! wxWidgets تملك دعم صناعي عريض ، أو لاستخدام التعبير الطنان ، حصة في العقول. قائمة المستخدمين تضم AOL و AMD و CALTECH و Lockheed Martin و NASA و مؤسسة تطبيقات المصادر المفتوحة و Xerox و آخرون كثيرون. تحاط wxWidgets بطيف كامل من المستخدمين من مطور البرمجيات المنفردون إلى أكبر الشركات، من دوائر علوم الحاسوب إلى مجموعات الأبحاث الطبية و من الأبحاث البيئية إلى صناعة الاتصالات. و أيضا تستخدم من قبل عدد كبير من مشاريع المصادر المفتوحة، مثل Audacity المحرر الصوتي ، و pgAdmin III نظام إدارة وتصميم قواعد البيانات. الناس تستخدم wxWidgets لعدة أسباب ، سواء البسيط مثل أنها بديل رائع عن MFC في منصة منفردة أو لتسمح لهم بالحركة بسهولة من مايكروسوفت ويندوز إلى يونكس و الماكنتوش. ومكتبة wxWidgets عنونت نفسها كتحدي لمنصات المحمولة أيضا بنقلها إلى الأنظمة المضمنة اللينكس و جهاز Microsoft Pocket و قريبا Palm. تأريخ wxWidgets بدأت مكتبة wxWidgets و التي كانت تسمى wxWindows في 1992 في معهد تطبيقات الذكاء الاصطناعي بجامعة إدنبرغ بواسطة جوليان سمارت عندما كان يعمل على أداة رسم بياني أطلق عليها Hardy ، لم يرغب في الاختيار بين نشرها على منصات صن أو الحواسيب الشخصية ، فلذا قرر أن يختار أطار عمل متعدد المنصات . كانت الأدوات التجارية متعددة المنصات قليلة جدا ، فضلا على أن المعهد لا يملك الميزانية الكافية لها على أية حال ، لذا كان الخيار الوحيد هو بناء أداة متعددة المنصات، و في سبتمبر 1992 سمح الجامعة لجوليان أن يرفع الإصدار الأول من مكتبته على موقع ال FTP للجامعة. مكتبة wxWidgets (حرف w من Windows و x من X خادم النوافذ في اليونكس ) بدأت بدعم Xview و MFC 1.0 . بعدما أصبح واضحا أن XView قد بدأ عصره بالذهاب، كتبت نسخة wxWidgets لمنصة Motif . بدأ مستخدمو ++ Borland C بطلب نسخة لا تعتمد على MFC ، لذا نسخة الويندوز أعيدت كتابتها لتستخدم دوال API الويندوز الأصلية. مع الوقت، بدأ بالظهور مجتمع صغير لـ wxWidgets ولكن متحمس، و أعدت القوائم البريدية. المشاركات و الإصلاحات بدأت بالإرسال إلى المشروع الجديد، كانت أكبر المشاركات هي نسخة Mac و Xt. بدأت مكتبة wxWidgets بشكل تدريجي باستقطاب المزيد والمزيد من المستخدمين من شتى أنحاء العالم: التجاري ، و الحكومي و مستخدمين الشركات – معظمهم راضين – الذين وجدوا أن wxWidgets توفر منتج أفضل و دعم أفضل من المنتجات التجارية التي نظروا إليها أو استخدموها. خلال 1995 ، أصدر ماركوس هولزم نسخته من wxWidgets إلى منصة Xt وهي مجموعة أدوات X . هذا عنى أن البرمجيات يمكن أن تكتب و تعمل على أنظمة X من دون الحاجة إلى تثبيت Motif التي هي منتج تجاري. في 1996 ، ركد مشروع wxWidgets قليلا. غادر جوليان معهد تطبيقات الذكاء الاصطناعي ليتفرغ إلى أعمال الاستشارة الحرة، وكانت هناك القليل من الإصدارات. على ما يبدو أن تقدم جافا غير المتوقف ألقى بعض الشك على مميزات مكتبات ++C . بعد عدة مشاركات ، أصبح كود wxWidgets بالأحرى متعب وبحاجة إلى إعادة تفكير جدية. في بداية عام 1997 ، بدأ التفكير جديا بإعادة هندسة wxWidgets مع دوال API مرنة بما فيه الكفاية لواجهات المستخدم الحالية والمستقبلية، مع المزيد من الأدوات و استخدام أفضل لـ ++C. بعد تداول الحوارات بين جوليان سمارت و ماركوس هولزم ( مؤلف نسخة Xt) كان هناك القرار الجدير بالاهتمام. جوليان سيكتب نسخة الويندوز و ماركوس سيجمع نسخة Motif و Xt ، وسيتشارك كلاهما في الأجزاء العامة. أفكار دوال wxWidgets 2 بدأت بالتشكل و بدأ العمل على كتابتها. خلال 1997 بدأت في الظهور فكرة إنتاج بيئة سطح مكتب قياسي للينكس (GNOME) . هذه البيئة تعتمد على +GTK التي بنيت فوق X11، و بالرغم ذلك فإن التطبيقات المبنية على +GTK ستصبح قياسية لعالم اللينكس. كانت هناك مشكلة واحدة رئيسية، +GTK مبنية على لغة السي، ويوجد لها تغليف بسيط لـ ++C ( وغير قابل للنقل). في أغسطس 1997 ، قدم والفرام جلوجر اقتراح بأن wxWidgets2 يجب أن تنقل إلى +GTK. كان لروبرت روبلينج تحفظات أولية على الفكرة، ولكن في العموم هو داعم للفكرة. أصبح المحرك الرئيسي لـ wxGTK ، ونسخة اﻷلفا أصبحت متوفرة في بداية 1998. في مارس 1998 دمجت نسخة الويندوز و +GTK و وضعت في مستودع CVS وأصبحت متوفرة لجميع المساهمين لـ wxWidgets. في تلك الأثناء، أصبح فاديم زيتلين مطور نشطا في wxWidgets، وأعد معظم نشاط المطورين. في بداية 1998 ، انقطع ماركوس هولزم عن wxWidgets2 و لكن جوليان سمارت بدأ نسخة wxMotif جديدة. فكرة نسخة Xt أبعدت، بعد أن توفر احتمالين للبرمجة اليونكس مجانية مع wxWidgets: أولا مكتبة wxGTK و wxMotif مع نسخة Motif المجانية Lesstif. في سبتمبر 1998 ، بدأ ستيفن سومور نسخة جديدة من wxMac 2 مبنية في جزء منها على عمل جريج وايتهد المبدئي. ظهرت wxWidgets 2.1.11 مصحوبة بصفوف wxHTML الرائعة من عمل فاكلاف سلافيك ، مع تحسينات لاحقة تشمل القدرة على الطباعة ومعاينة ، و تطبيق helpview و صف متحكم المساعدة لنظام المساعدة HTML متعدد المنصات. أعطى wxHTML التطبيقات وصول سهل إلى عرض النص المنسق و قابلية التقارير. شهد منتصف 2000 إطلاق wxDesigner ، محرر الحوارات و أداة التطوير السريع من عمل روبرت روبلينج التي امتلكت انتشار واسعا. أيضا شهدت عام 2000 بداية wxUniversal وهي عبارة عن مجموعة من الأدوات للمنصات التي لا تمتلكها، لأن بعض المنصات تمتلك أدوات لا تمتلكها المنصات الأخرى. كتب wxUniversal بشكل أساسي فادم زيتلين و موله شركة تطبيقات SciTech ، وهي أيضا التي قامت بتمويل فاكلاف سلافيك لكتابة نسخة إلى منصتهم MGL . في يوليو 2000 انضم جوليان سمارت إلى إدارة ردهات كامبردج في بريطانيا، وغادرها في فبراير 2002 ليتابع منتجاته عندما قررت ردهات إيقاف مشروع eCos الهادف إلى إنشاء نظام تشغيلي مضمن. من أواخر 2001 إلى منتصف 2002 ، قام جوليان سمارت و روبرت روبلينج بإضافة نسخة wxX11 باستخدام أدوات wxUniversal ، وهذه النسخة تتطلب فقط نظام اللينكس و خادم X11، وهي مناسبة لأي بيئة لينكس تستخدم مواصفات بسيطة من المساحة. في أكتوبر 2002 نجح روبرت روبلينج ببناء نسخة wxX11 لنسخ اللينكس المألوفة التي تعمل على iPAQ. روبرت نجح أيضا في امتلاك wxGTK تعمل بـ +GTK مع دعم اليونيكود ، فاتحا بذلك إلى wxWidgets أسواقا جديدة. في يوليو 2003 بدأت wxWidgets بالعمل على Windows CE ، و أثبت روبرت روبلينج أن تطبيقات wxGTK تعمل على GPE منصة اللينكس المضمنة. نسخة OS/2 بواسطة دايفد ويبستار و ستيفان نيس تطور بشكل بطيء ولكن ثابت خلال سنوات الماضية. في فبراير 2004 ، أعلن جوليان سمارت أن اسم المشروع سيغير اسمه إلى wxWidgets بدلا من wxWindows ، كنتيجة لضغط شركة مايكروسوفت عليه لاحترام العلامة التجارية " Windows “ المسجلة لدى مايكروسوفت في فرع المملكة المتحدة. ويخطط لإصدار wxWidgets 3 مع بداية 2008 حيث تركز أكثر شيء على دعم اليونيكود بشكل واسع مع تطوير الدوال و تسهيل استخدامها. ترخيص wxWidgets توزع مكتبة wxWidgets تحت ترخيص مخصص ، مشابه إلى GNU Lesser General Public License - الذي يسمح باستغلالها لكتابة برامج حرة وتجارية معا - مع استثناء أن وضع العمل المشتق منها في صغيته الثنائية يمكن أن ينشر تحت شروط المستخدم الخاصة. هذا الترخيص هو ترخيص برامج الحرة ، ويجعل wxWidgets برنامجا حرا. بنية wxWidgets الجدول التالي يظهر أربع طبقات تصورية: دوال API التابعة wxWidgets ، والنسخ الرئيسية و دوال المنصة المستخدمة في تلك النسخة ، و أخيرا البنية الأساسية نظام التشغيل. Image removed. وهذا شرح للمنصات wxWidgets الموجودة حاليا: wxMSW هذه المنصة تترجم وتعمل على كل من 32 بت و 64 بت من أنواع نظام التشغيل ويندوز، وتشمل Windows 95 و Windows 98 و Windows ME وWindows NT و Windows 2000 و Windows XP و Windows 2003 و Vista. ويمكن أن تترجم لتستخدم Winelib تحت منصة اللينكس و تملك إعداد يمكنها أن تعمل على Windows CE ( انظر wxWinCE). wxMSW يمكن أن تعد لتستخدم أدوات wxUniversal بدلا من Win32 العادية. wxGTK wxWidgets لمكتبة GTK+ يمكن أن تستخدم الاصدارت 1.x أو 2x من طقم أدوات+ GTK على أي نوع من أنواع اليونكس المختلفة التي تدعم X11 و GTK+ ( على سبيل المثال: Linux و Solaris و HP-UX و IRIX و FreeBSD و OpenBSD و AIX و غيرها ). ويمكن أن تعمل على الأنظمة مضمنة مع مصادر كافية ، على سبيل المثال تعمل تحت بيئة GPE Palmtop . ينصح بمنصة wxGTK للأنظمة المبنية على اليونكس. wxX11 مكتبة wxWidgets لـ X11 تستخدم طقم أدوات wxUniversal و تعمل مباشرة على Xlib من دون طقم الأدوات الأصلية. هذا يجعل هذه المنصة مناسبة للأنظمة المضمنة و لكن يمكنها أن تستخدم لتطبيقات المكتبية حيث أنها لا ترتبط مع مكتبة +GTK. هذه المنصة مدعومة على أي نظام يونكس يشغل X11. منصة wxX11 غير ناضجة مثل منصة wxGTK. wxMotif هذه المنصة يمكنها أن تستخدم Motif و OpenMotif أو Lesstif على معظم أنظمة اليونكس. وضعت شركة صن مايكروسيستم أدواتها خلف جنوم و +GTK ، لذا Motif لم يصبح خيارا جذابا لمعظم المطورين و المستخدمين. wxMac منصة wxMac تستهدف Mac OS 9 ( من 9.1 فأعلى ) و Mac OS X ( من 10.2.8 فأعلى ). لنسخة Mac OS 9 تحتاج إلى أدوات Metrowerks CodeWarrior و لنظام Mac OS X يمكنك استخدام Metrowerks CodeWarrior أو أدوات أبل. عندما تستخدم أدوات أبل يجب أن تستخدمXcode 1.5 فأعلى ، أو - إذا كنت تستخدم أدوات سطر الأوامر - GCC 3.3 فأعلى. wxCocoa هذه المنصة ما زالت قيد التطوير وتستهدف دوالCocoa لنظام Mac OS X. بالرغم أن وظائف Carbon و Cocoa متشابه، إلا أن هذه المنصة تملك إمكانية دعم تشغيل GNUStep على منصات أخرى غير الماكنتوش. wxWinCE منصة Windows CE تجمع عدة SDK على منصة Windows CE تشمل Pocket PC و Smartphone. أغلب هذه المنصة مأخوذ من منصة wxMSW مع بعض الإضافات و الاختصارات للمنصة المشابهة. wxPalmOS هذه المنصة لنظام Palm OS (Cobalt) . في لحظة كتابة هذه الوثيقة هذه المنصة في بداية مشوارها ولكن يمكن أن تستخدم لبناء وتشغيل مثال بسيط على محاكي Palm OS 6 . wxOS2 نسخة wxOS2 هي منصة عرض رئيسية لنظام OS/2 أو DECstation. wxMGL هذه المنصة تستهدف طبقة الرسومية MGL منخفضة المستوى من شركة SciTech للبرمجيات ، وتستخدم طقم أدوات wxUniversal. مميزات wxWidgets
  1. مكتبة wxWidgets لا فقط على ++C ، ولكنها أيضا تملك جسورا إلى بايثون و بيرل و جافا و إيفيل و سي شارب (الدوت نت ) و البيسك و روبي و lua و حتى جافا سكربت. مما يسهل عملية البرمجة بها لمن لا يعرفون لغة ++C
  2. تعتبر أحد المكتبات أدوات GUI المكتملة، وتملك العديد من الصفوف الخدمية.
  3. تمتلك توثيقا جيدا .
  4. مجانية للاستخدام الشخصي و التجاري معا.
  5. كلما أمكن تستخدم مكتبة wxWidgets منصة التطوير الأصلية. وهذا يعني أن البرنامج إذا بني على الويندوز سيأخذ مظهر و سمة برامج الويندوز و عندما يبنى على منصة اللينكس سيأخذ مظهر وسمة برامج اللينكس.
الفرق بين wxWidgets و Qt هناك عدة فروق بين المكتبتين:
  1. مكتبة wxWidgets مجانية بشكل كامل ، بحيث يمكنك برمجة برامج مفتوحة المصدر و تجارية من دون الحاجة إلى شراء تراخيص، بعكس مكتبة Qt حيث يجب عليك شراء تراخيص عالية الكلفة لبرمجة برامج مملوكة تجارية.
  2. مكتبة wxWidgets أدواتها تستمد مظهرها مباشرة من النظام التشغيلي وبالتالي لا يحس المستخدم بأي فرق، أما مكتبة Qt فتقوم في بعض أدواتها بمحاكة أدوات النظام التشغيلي.
  3. كلا المكتبتين توثيقهما يعتبر جيد بشكل مقبول لدى المطورين.
  4. لا يوجد دعم تجاري لدى مكتبة wxWidgets بعكس مكتبة Qt.
  5. لا يوجد دعم جيد للاتجاه من اليمين إلى اليسار لدى مكتبة wxWidgets بمعنى آخر دعم العربية لا يزال يواجه بعض الصعوبات وذلك عكس مكتبة Qt.
  6. مكتبة تستخدم مفاهيم البرمجة الكائنية بشكل واسع وأساسي مما يساعدها في اختصار الأسطر أثناء البرمجة ، بينما مكتبة wxWidgets تستخدم مفاهيم المايكرو على غرار مكتبة MFC ، مما ينتج عنه سرعة أكبر أثناء العمل البرنامج.
الفرق بين wxWidgets و MFC مكتبة MFC متوفرة فقط بالمجان لمنصة الويندوز:
  1. - نسخة الماكنتوش توفرت مع Visual C++ Crossplatform Edition ( بسعر 800 دولار) ولكنها لم يستمر دعمها منذ النسخة 4.1
  2. - توجد نسخة مشابهة لمنصة اليونكس مثل MainWin ، ولكنها أسعار تراخيصها غالية جدا ، و عندها مشاكل في الدعم الفني.
  3. كلا مصدري wxWidgets و MFC متوفر بالمجان ، ولكن الرخصة المستخدم النهائية EULA لا تشمل مكتبة wxWidgets.
  4. الملفات التنفيذية أصغر حجما في مكتبة MFC من مكتبة wx.
  5. تمتلك MFC نطاق أوسع من المكونات التجارية عالية الجودة.
  6. بعضهم يقول أن نظام جداول الأحداث مستخدم في wxWidgets أفضل من خرائط الرسائل المستخدم في MFC.
  7. تمتلك مكتبة wxWidgets هيكلة صفوف أكثر بدهية، بينما MFC تحاول أن تكون أكثر ثباتا مع الأسماء الصفوف العليا.
  8. تقدم wxWidgets مجموعة ضخمة من الصفوف التي تؤدي الأعمال بشكل سهل ، بينما مكتبة MFC تقدم صفوفا أكثر متخصصة في الويندوز.
الفرق بين wxWidgets و +GTK
  1. مكتبة +GTK في الأصل هي مكتبة أدوات Gimp الرسومية ، ورخصتها LGPL ، وتستخدم لغة السي لأنظمة اليونكس.
  2. تم نقلها إلى منصة الويندوز و VMS و أنظمة أخرى ، وتعمل على منصة MacOS X باستخدام برنامج أبل X11.app ، و تستخدم نفس الدوال API. على كل حال ، التطوير الرئيسي والتركيز يتم على نسخة اليونكس، وتطوير متعدد المنصات يأتي في المرحلة الثانية.
  3. بخلاف wxWidgets ، مكتبة +GTK تدعم لغة السي ( و يوجد تغليف لها للغة ++C يطلق عليه GTKMM)
  4. دوالها مطورة بشكل جيد و تحوي التحويل الآمن و أشياء أخرى ، ولكن باستخدام ++C فأنت لست بحاجة إليها.
  5. تم بناءها فوق مكتبة glib ، وهي مكتبة عامة الأغراض ، مشابهة في بعض طرقها لمكتبة القوالب القياسية STL في لغة ++C.
  6. تظهر بشكل واحد في كل الأنظمة باستثناء ويندوز إكس بي ، بينما تحاول ( مع بعض النجاح ) للحصول على مظهر وسمة الويندوز الأصلية باستخدام ثيم Wimp الذي يستخدم UxTheme، وهي على كل حال ، تبقى مكتبة يونكس للغاية.
  7. بما أن wxWidgets تستخدم GTK على منصة اليونكس ، يبدو أن هناك سبب بسيط لاستخدام GTK على wxWidgets لبرامج ++C متعددة المنصات.
سلبيات wxWidgets لكل مكتبة سلبيات و مكتبة wxWidgets لا تخلو منها ، وهذه أهمها:
  1. ضعف في المكونات الرسومية التجارية لصنع شبكات رسومية جميلة و لصنع الرسوم البيانية، ولكن يمكن إلقاء نظرة على wxCode .
  2. لا يوجد دعم لثيمات ، ما لم تستخدم wxUniversal أو wxSkin.
  3. منصة wxX11 لا تقارن بالمكتبات الآخرى و غير مستقرة. يجب عليك استخدام wxGTK بدلا منها، وتبني تطبيقاتك على GTK بدلا عن X11 مباشرة. منصة wxX11 غالبا تستهدف إلى الأجهزة المضمنة والتي لا تملك GTK.
  4. تحاول wxWidgets أن تدعم طاقم المميزات مكلفة ، وكنتيجة بعض المكونات قليلة الاستخدام ليست مستقرة أو لا يعتمد عليها بالمقارنة بالمكونات العامة. ومثلما مع كل مكتبة أدوات مفتوحة المصدر ، الاختبارات المعمقة أفضل حل هنا.
  5. بالنسبة للغة العربية فإنها لا تدعم تغيير اتجاه البرنامج من اليمين إلى اليسار بشكل جيد ، بالرغم أن المكتبات الأصلية تدعم هذه الخاصية.
برامج تستخدم wxWidgets Vlc: مشغل الملتيمديا المشهور. Poedit: برنامج لترجمة ملفات PO التي تستعمل في برامج اللينكس بكثرة. Xara Xtreme : برنامج لرسوميات المتجهة وهو نسخة خاصة باللينكس. AOL Communicator : برنامج عميل الانترنت المشهور Audacity : برنامج تحرير الصوتيات و المقاطع الصوتية Kirix Strata : برنامج قواعد بيانات دينامكي Chandler : برنامج الجدولة والمواعيد مشابه جدا لبرنامج أوتلوك. المراجع: 1)الفصل الأول من كتاب Cross-Platform GUI Programming with wxWidgets 2)http://wxwidgets.org حمل نسخة PDF من هنا

Comments