الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

kamous

مغلق
بدأه mhewedy في 27 سبتمبر 2010 · 4 رد · 1,588 مشاهدة · في قسم Cross Platform GUI Libraries العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم..

و الله إني لأستحي من طرح برنامج مثل هذا بين عمالقة ال Qt ...

فأنا حديث جدا بال Qt (أول برنامج) ... و أيضا حديث جدا بال C++ (و إن شئت فقل لم أصل لدرجة الحداثه حتى..)

و لكني أردت أن أحول القاموس الذي أستخدمه من Java ل C++ ...... فأقدمت على C++ و Qt (من خلفيتي البسيطه عن ال C )....

صورة البرنامج ...

post-70497-024442300 1285617737_thumb.pn

الرابط في مدونتي:

http://m-hewedy.blogspot.com/2010/09/kamous.html

الرابط على Google code :

http://code.google.com/p/kamous/

المرفقات
snapshot1.png
4
#2

ما شاء الله أخوي هويدي

جهد جميل وعمل حلو ... بصراحة الواحد أحياناً يخجل من نفسه ... يعني لدي العديد من البرامج بهذه المكتبة ولم أفكر يوماً بوضعها على الإنترنت ... :wacko:

ربما بعد موضوعك هذا سأحاول إقناع هذه النفس الهزيلة لتنشر بعض البرامج ...

سألقى نظره على البرنامج ... وبداية موفقة ...

#3

شكرا أخي bms..

بإنتظار تعليقات على الكود :D..

#4

وعليكم السلام ورحمة الله وبركاته ،

مشروع جميل ، ولا ينطبق عليه ما ذكرته في الأعلى :happy: .

هناك ملاحظة لمن يستخدم Qt Creator عند ترجمة المشروع وتشغيله فانه سيتوقف فورا (كماحدث معي :lol:) عندما يتم فتح ملفات الترجمة للقراءة منها ، حيث ان الدالة open لن تستطيع فتح الملف وسيتم حدوث exception ويغلق البرنامج .

سبب ذلك هو أن Qt Creator أصبح ينشيء مجلدا جديدا بالاسم build-desktop يحوي الملفات الناتجة من الترجمة وكذلك الملف التنفيذي. وعندما تحاول الدالة open فتح الملف فانها تستخدم relative path وهو data/ والذي هو بالتأكيد خارج المجلد الذي انشأه ال IDE ، لذلك ستفشل العملية بالتأكيد ويحصل الإستثناء ويغلق البرنامج ، ويمكنك حل هذه المشكلة بنسح مجلد ملفات الترجمة الى هناك وسيعمل معك (في ويندوز يجب نسخه الى داخل مجلد release أو debug حسب نوع الترجمة التي قمت بها ).

الى هنا كل شيء جميل ، لكن عندما تدخل مجلد build-desktop و تحاول فتح البرنامج بالضغط عليه من أي مستعرض للملفات (dolphin مثلا) فان البرنامج لن يعمل أيضا :wacko: ، بسبب أن مستعرض الملفات يجعل ال Working Directory هو مجلد home وعندما تحاول الدالة open فتح مجلد ملفات الترجمة فان ال relative path سيكون عند مجلد ال home (أي أن الدالة open ستبحث هنا /home/sudanix/data/) وبالتالي لن تجد مجلد ملفات الترجمة ويحصل الإستنثناء مجددا ويغلق البرنامج :lol: .

لحل ذلك يمكنك يوجد عدة طرق : يمكنك من داخل ال Qt Creator الغاء خاصية انشاء مجلد جديد لوضع مخرجات الترجمة وذلك بالغاء علامة الصح من الخيار Shadow Build الموجود في القائمة اليسرى عند الخيار projects. هكذا لن تحتاج الى نسخ مجلد data الى أي مكان آخر وسيعمل معك البرنامج من Qt Creator فورا ، بعد ذلك قم بفتح ملف main.cpp والقي عليه هذه الشفرة :

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QDir dir(QCoreApplication::applicationDirPath());

#ifdef Q_OS_WIN
    QString dirName = dir.dirName().toLower();
    if(dirName == "debug" || dirName == "release")
        dir.cdUp();
#endif

    QDir::setCurrent(dir.absolutePath());


    DictWin w;
    w.show();
    return a.exec();
}

باختصار يقوم بتغيير ال Working Directory ويجعله نفس مجلد الملف التنفيذي (في لينوكس، اما في ويندوز فيكون المجلد الأعلي هو ال working dir)، وبالتالي عند فتح البرنامج من خلال مستعرض الملفات سينفذ معك بشكل جيد .

هذا حل مؤقت ، توجد حلول أكثر احترافية من خلال التحكم في ملف المشروع .pro ، كذلك يمكن تضمين ملفات الترجمة ك resource file مع البرنامج وهكذا لن تحتاج الى ارسالها الى الزبون.

اخيرا ، الكود ممتاز جدا وهو سي++ أكثر من كونه كيوتي :)

وفقكم الله.

تم تعديل هذه المشاركة بواسطة SudaNix في 30 سبتمبر 2010 في 02:36

3
#5

شكرا لك أخي SudaNix على تعليقك .......

فعلا لم يكن يعمل من خلال Dolphin :D

و شكرا لك على الشفره .... و بالنسبه لموضوع إضافة الملفات ك resources ... فعلا حل رائع .... سوف أبحث فيه إن شاء الله..

و أخيرا ... نعم الكود C++ (كنت أفكر أن أكتبه C لكن وجد مزايا كثيره في ال C++ مثل ال std::string و std::vector) مع بعض ال Qt في أضيق الحدود (فقط للتعامل مع الواجهه)......

شكرا لك و أنتظر مزيد من التعليقات منك و من الأخوه هنا ...

هذا الموضوع مغلق.

مواضيع مشابهة