• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

SudaNix

المشرفون
  • عدد المشاركات

    291
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

105 جيد جدا

عن SudaNix

  • الرتبة
    مشرف قسم Cross platforms
  • تاريخ الميلاد 08/28/1985

طرق الإتصال

  • MSN [email protected]m
  • Website URL http://www.qt-ar.org
  • Skype suda.nix

معلومات الملف الشخصي

  • الجنس ذكر
  • الدولة : الرياض
  • اهتمامات Qt
  1. السلام عليكم.   توجد وظيفة شاغرة (مطور أندرويد) للعمل في شركة برمجيات في الرياض. لمن يرغب بالتفاصيل او التقدم فليراسلني على البريد: ahmadessam[AT]outlook[DOT]com   والأولوية لمن هو مقيم بالرياض أو يملك إقامة قابلة للتحويل.
  2. السلام عليكم ورحمة الله وبركاته،   بحمد الله بدأنا دورة تعلم كيوت ، واكتمل الآن الدرس الأول (مكون من 7 فيدوهات). كيوت - لمن لا يعرف- هي إطار عمل يسمح لك بتطوير تطبيقات متعددة المنصات ذات واجهة رسومية باستخدام لغة سي++ يمكنك استخدام كيوت لتطوير تطبيقات تعمل على ويندوز،لينوكس،ماك. وأيضا يوجد دعم لمنصات الجوال مثل ميجو، سيمبيان، سيلفيش، بلاي بيري 10. ولاحقا سيتم دعم منصة الأندرويد وiOS. وبتعلمك كيوت ستزداد خبرتك وانتاجيتك في لغة سي++. وستتعرف على العديد من المفاهيم التي ربما لم تتعملها او لم تستخدمها في سي++، مثل تطوير الواجهات الرسومية، تطبيقات الشبكات، قواعد البيانات،  JSON/XML files ، Threading ، Event handling, وغيرها من المفاهيم. رابط الدورة/ هنا     في حالة كان لديك اي تساؤل، يمكنك وضع سؤالك على القسم: Cross Platform Libraries بالتوفيق
  3. نتمنى ان نرى مطورين اكثر مع هذا الإصدار. مطوري جافا سكربت ، مرحبا بك في عالم كيوت Hello World ! يمكنك ان تبدأ بكتابة تطبيقاتك بكل سهولة ، نعم كيوت توفر V8 JS Engine ستحتاج الى تعلم لغة بسيطة (QML) لوصف عناصر التطبيق. مطورين سي++ ، كيوت هي سي++ (هل هناك Infrastructure لا تعمل بسي++ :) ) ، لكن على عكس أغلب التقنيات يمكنك استخدام سي++ بجانب ال Exposed language (QML, JS) أو استخدام سي++ فقط مطورين اندرويد، iOS ، Meego/Mer/Sailfish ، BB10 : كيوت5 وصلت وسيتم الدعم لمعظم المنصات في 2013. مصممي فوتوشوب: يمكنكم البدء وتصميم واجهاتكم ومن ثم استخدام اداة خاصة لنقل الطبقات الى كيوت ، بعدها يمكنم العمل من خلال ال Integrated Designer. برنامج Hello World Write One, Compile Everywhere
  4. نعم، في كثير من الأحيان يكون استخدام if..else او switch دلالة على ضعف في تصميم البرنامج. بسبب ان الفئة التي تستخدمها تكون عرضة دائما للتعديل كلما تم اضافة خيار جديد في جملة if او switch، وهذا يخالف مبدأ مهم في تصميم الكائنات Open/closed principle فمثلا لو أن لديك مهمة معينة تقوم بادآئها في حالة كانت قيمة متغير ما هي X ، واذا لم يتحقق ذلك تقوم بتنفيذ مهمة أخرى. class Object { private: int m_task; public: enum { TaskA = 1, TaskB, TaskC }; void doAction() { if ( m_task == TaskA ) { // do action A } else if ( m_task = TaskB ) { // do action B } else if ( m_task == TaskC ) { // do action c } // else ... } }; لاحظ الان كلما أردت اضافة مهمة جديد يجب تعديل الكود السابق واضافتها. وهذا خطأ معروف. الحل هو بفصل المهام الى فئات ، واستبدال المتغير الذي يحمل قيمة الحدث بمؤشر يشير الى الفئة التي ستنفذ الحدث، وبالتالي ستفوض مهمة الدالة doAction وقت التشغيل الى أحد المهام. الحل الصحيح سيكون: class Task { public: virtual void doAction() = 0; }; class TaskA : public Task { public: void doAction() { // ... } }; class TaskB : public Task { public: void doAction() { // ... } }; class TaskC : public Task { public: void doAction() { // ... } }; class Object { private: Task* m_task; // created by ctor or factory class. public: void doAction() { m_task->doAction(); } }; اعتقد ان الشرح قد يبدوا معقدا ، نظرا لانه يصعب شرح الفكرة في مثال وهمي ، لكن كخطوة اولى هي فهم فكرة التصميم وأين تطبق غالبا ، بعد ذلك الكود سيكون بسيط. امثلة على هذا التصميم وهو نمط برمجي معروف يسمى Strategy Pattern : - تحديد طريقة ترتيب عناصر بناء على قيمة او اعدادات معينة او بناء على طلب المستخدم. - تحديد طريقة اطلاق النار لكائن في لعبة. - تحديد طريقة ال Authentication للدخول على موقع (Active Directory, Form, Web Service) - تحديد طريقة التأكد من البيانات Validation بناء على نوع القيم. لاحظ ان جميع الأمثلة تدور حول تعريف النمط ، وهو ان هناك مجموعة من الخوارزميات المفصولة يتم استبدالها وقت التشغيل. اتمنى ان يكون الشرح واضح ، ويمكنني كتابة درس حول الموضوع للتوضيح اكثر. وكاجابة على سؤالك: لا ، تقليل استخدام if..else او switch هو احد فوائد استخدام OOP واتباع أنماط التصميم. لكن هناك فوائد اكثر بكثير. بالتوفيق.
  5. استخدم ++g لعدة اسباب: - يدعم مواصفات سي++ القياسية. - يعمل على عدة منصات ، لا حاجة لدراسة أوامر مترجم جديد واستخدامها. - مفصول عن ال IDE ومحررات النصوص، وبالتالي يمكن استخدام اي محرر (Vim مثلا) ، واي نظام بناء (make مثلا). كخلاصة استخدم البرامج/الحزم التالية في تطبيقات سي++: VIM --- محرر نصوص. ++g --- المترجم. ld --- ال linker وهو يستخدم ضمنيا من g++. make --- نظام البناء git -- ادارة السورس كود boost test --- لكتابة unit test gdb --- ال debugger. بالتوفيق.
  6. سابقا استخدمت حزمة polyglossia لكتابة مستندات عربية. يمكنك الاستفادة منها: https://www.gitorious.org/eqraos/eqraos-doc ستحتاج الى XeLaTeX لترجمتها. بالتوفيق.
  7. وعليكم السلام ورحمة الله وبركاته ،، حقيقة لا أعلم عن النسخة التجارية. في النسخة LGPL يمكن الربط مع static lib ، لكن بنص الرخصة يجب على الأقل توفير ال object files للشفرة وذلك حتى يتمكن المستخدم من إعادة ربط ال object files مع نسخ حديثة من مكتبة كيوت. ستجد في الرابط التالي أحد افضل الكتب العربية عن رخص البرمجيات: http://chefrour.blogspot.com/2012/03/08.html والصورة التالية مقتبسة من الكتاب: وفي صفحة 10 ستجد شرحا عن الرخصة. بالتوفيق ،،
  8. يمكنك ان تكتب برنامج مغلق المصدر باستخدام النسخة المجانية ، ويمكنك بيعه أيضا. هذا لا يخالف نص رخصة LGPL. ما يخالف هو التعديل على شفرة كيوت نفسها وغلقها. في هذه الحالة عليك بالنسخة التجارية. وربما هناك حالة اخرى يجب فيها استخدام النسخة التجارية ، لكني لا استحضر الان جميع تفاصيل الرخصة. بالتوفيق ،
  9. حقيقة لا أدري لماذا تستخدمون النسخة التجارية ! لا فرق بينهم كأدوات تطوير. الموقع الرسمي للحصول على كيوت: http://qt-project.org/downloads ولا أذكر ان كان الل SDK في النسخ الأخيرة يحوي على MinGW او لا. على العموم في نافذة التنصيب اختر custom وتاكد من وضع علامة صح عليه ان كان موجود. كذلك قم بحذف Qt 4.7.x واستخدم آخر نسخة Qt 4.8.x أيضا ربما لن تحتاج الى أدوات سيمبيان وميجو لذا قمت بإزالة الصح منها. بالتوفيق،
  10. وعليكم السلام ورحمة الله وبركاته ،، موقع ديجيا يوفر النسخة التجارية . اما النسخة المجانية ، ستكون على الموقع الرسمي: qt-project.org شكرا للتنبيه.
  11. حاليا كيوت تم بيعها لصالح ديجيا ، وموقعها تحت التحديث ، وما قمت بتحميله هي النسخة التجارية. احذف كل ما قمت بتنصيبه ، وقم بالتحميل من هنا: https://qt-project.org/downloads اختر Offline installer - 1.7 GB في ويندوز. وفي خيارات التنصيب ، اختر custom او ما شابه ، المهم تأكد من استخدام Qt 4.8.X MinGW ، وتأكد من اختيار حزمة MinGW. فقط :)
  12. كما يبدوا أن النسخة تعمل لديك. قم بانشاء مشروع جديد ، مثلا Qt Widget application ، وتأكد من ان مسار المشروع مكتوب باللغة الانجليزية ولا توجد مسافات (ربما كانت هي سبب المشكلة). بالتوفيق ،
  13. بالاستسلام هكذا لن تتعلم شيء. يمكن المشكلة فعلا من jom. وبصراحة لم اتعامل معها ، لاني استخدم كيوت مع MinGW وليس كيوت مع MSVC tools كما تفعل انت. الحل كما ذكر لك الاخوة بتركيب اخر اصدارة من jom. او الحل الثاني - وهو ما انصحك به- تحميل ال SDK ، وعند التنصيب اختر custom وتأكد من تعطيل نسخة كيوت الخاصة ب MSVC وتفعيل نسخة MinGW ، وكذلك تأكد من وضع صح على MinGW tools أيضا قم باختيار نسخة Qt 4.8 ، لا داعي لتركيب 4.7.x هكذا لن تقرأ كلمة jom مجددا :) ، فحزمة MinGW تستخدم أداة make لبناء المشاريع. بالتوفيق ،
  14. جزاك الله خيرا ، امض على بركة الله. ويمكنك حذف هذه المشاركة والمشاركات الجانبية ان أردت اكمال الحديث في هذا الموضوع. بالتوفيق،