مساعدة حول واجهات البرمجة مع السي

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

بدأت البرمجة أكتر من سنتين مع لغة البرمجة السي, لأني مقتنع بها وأحب الكنسول فقط

والآن أعرف البرمجة بالسي فقط.

المشلكة الآن هي أنني أريد مبرمجة برنامج ان شاء الله سيكون قوي بواجه غير الكونسول.

سيكون البرنامج لتنظيم الوقت يعني ستكون على واجهته الأزرار و الخيارات والتبويبات و وخصوصا الجدوال مثل الاكسل.

كما تعلمون يمكننا القول أن السي ليست قوي في هدا المجال لاكن لابد من وجود تقنيات لهده المشكلة

سبق وان تعاملت مع مكتبة SDL لاكنها لن تنفع في برنامجي.

أريد واجهة تواكب التطورات مثل واجهات البرامج القوية مثل VISUAL STUDIO

ممكن المساعدة جزاكم الله خيرا

هل توجد تقنيات أو مكتبات أو برامج تساعد على البرمجة بالغة السي مع الواجهات ؟؟

أعلم بوجود GTK+ لاكنني غير مقتنع بالواجهات التي يمكن عملها بها لدى قررت وضع هدا الموضوع.

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

معظم المكتبات الرسومية مثل MFC و VCL تعمل بلغة سى++ و ليس سى,

لبرمجة الواجهة فان سى++ أكثر واقعية, لأن البرمجة الكائنية أساسا كان الهدف منها هو تسهيل كتابة البرامج ذات الواجهة الرسومية.

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

اذا كنت تريد استخدام سى فقط, فلا بأس من استخدام سى مع مكتبات Windows sdk اذا كنت تستخدم ويندوز, و الأمر ليس صعبا, و يمكنك أيضا مع الوقت تطوير مكتباتك الخاصة بلغة سى و التى تقوم بتسهيل الWindows sdk دون اللجوء الى الكائنات و سى++.

كيف يمكنني فعل دالك

برمجة ويندوز فى الأصل تتم عبر Windows SDK, و هى سلسلة من المكتبات الاجرائية الديناميكية DLL يمكن من خلالها الوصول الى كافة قدرات ويندوز سواء الرسومية او غير ذلك و هى مكتوبة بلغة سى لكن يمكن استخدامها من أى لغة برمجة تدعم ذلك.

فمثلا الاجراء CreateWindow يقوم بعمل نافذة جديدة بأبعاد و مواصفات معينة, لاحظ ان النافذة قد تكون نافذة أو قد تكون Control داخل نافذة, فكل شىء فى ويندوز هو نوع من النوافذ.

hwnd = CreateWindow(

    "MainWClass",        // name of window class 
    "Sample",            // title-bar string 
    WS_OVERLAPPEDWINDOW, // top-level window 
    CW_USEDEFAULT,       // default horizontal position 
    CW_USEDEFAULT,       // default vertical position 
    CW_USEDEFAULT,       // default width 
    CW_USEDEFAULT,       // default height 
    (HWND) NULL,         // no owner window 
    (HMENU) NULL,        // use class menu 
    hinstance,           // handle to application instance 
    (LPVOID) NULL);      // no window-creation data 

عليك ان تقرأ عن Windows API, استخدامها ليس صعب, لكن هناك تفاصيل كثيرة جدا لأنها مكتبات ضخمة (تعتبر من أضخم المكتبات التى عرفها عالم الحواسيب),

البرمجة بهذه الطريقة سوف تأخذ وقتا طويلا, و لهذا فان المكتبات الرسومية مثل MFC و VCL تخفى عنك هذه التفاصيل الكثيرة فى شكل كائنات يمكن التحكم بها بسهولة.

عليك ان تعمل على IDE يحتوى طبعا على تعريفات SDK, و هذا سهل لأن اى IDE على ويندوز يدعم برمجة السى و Windows API,

Visual c++ طبعا خيار جيد و هناك نسخة مجانية لن تحتاج لأكثر منها,

C++ Builder أفضله بشكل شخصى لكن أرخص نسخة ب200 دولار و هى كافية لبرمجة سى مع ويندوز SDK,

هناك خيارات أخرى مفتوحة المصدر أيضا.

C++ Builder يمكنه من العمل بلغة سى فقط, أى ان له مترجم خاص بسى, لكن بشكل عام اى مترجم سى++ سوف يترجم سى أيضا, يطلق عليها مترجمات سى/سى++, لأن لغة سى هى نفسها السى++ مع البرمجة الكائنية و بعض المكتبات الاضافية.

يمكنك أنت أيضا تصميم مكتباتك الخاصة, فمثلا كما رأيت CreateWindow تأخذ Parameters كثيرة جدا, كما ان هناك الكثير من الاجراءات التى تتبع هذه الاجراء, حاول ان تختصرهم فى Procedure واحد يقوم بكل هذا عنك و على الأقل يحتوى على قيم Default التى لا تحتاج الى تغييرها.

بارك الله فيك

لاكن قررت استخدام QT

انظر

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

عزيزي اسمح لي بالمحاوله

واجهت عدت مشاكل في الواجهه الرسوميه في عدد كبير من اللغات ورسيت الان علي javafx

ولكن بالنسبه للسي GTK+ ممتازه وربما هناك بعض المميرزات التي تفتقر لها ولا يوجد محرر قوي لصنع المكونات

لكن لديك qt project مكتبه خاصه للسي+ واعتقد بها الكثير من المميزات الممتازه ولا اعتقد ستحتاج لامور خارجيه

علي سبيل المثال قواعد البيانات مرتبطه مع tableview والتعامل ما بينهما جميل جداً

بالتوفيق واتمنى لم اخطئ في تقديم المشوره

GTK+ هل تستطيع عمل جداول وتبويبات مثل EXCEL ؟

qt project عندما أبحت عنه أجد أنه مرتبط ب C++ !!

نعم يمكن عمل ذلك ..

اما بالنسبه Qt و GTK كلهما مكتوبتان بc++

انظر

http://vhernandez.github.io...

أظن أن QT خلقت لتعمل مع C++ !!

نعم انا كنت اعمل بـ كيوتي مع سي ++ في السابق وبتعمل جداول وتبويبات وبرامج عادية .

والتطوير فيها سهل وقوي وبتوفر ادوات ومكتبات كثيرة.

GTK+ هل تستطيع عمل جداول وتبويبات مثل EXCEL ؟

أنظر البرنامج الخفيف Gnumeric مبرمج بـ C و +GTK للواجهة.

صديقي مشكلتك تحديدا هي محدودية المكاتب أم تريد IDE فيه خاصية تصميم الواجهات للغة سي ؟؟

اما إن كنت ترى أن الـGTK+ محدودة وغير مقتنع بها فهناك سوء فهم منك

واجهة جنوم شل كاملة مبنية عليها سينامون ماتي .. !

أفهم الشطر الثاني وهو أنك تريد بيئة تطوير تساعدك في البرمجة وتصميم الواجهة بسهولة دون كتابتها من الفراغ

أنصحك ب Anjuta أو استخدم Glade

أو ربما تبحث عن مكونات معينة مثل الإيكسل أو غيره فهذه تبنى من الأساس في مشاريع مفتوحة المصدر

يمكنك إلقاء نظرة عليها وفهم مافيها أو استخدام تلك المكونات طالما كانت تحت تراخيص حرة

لديك مثلا :http://www.gnumeric.org

أو ابحث عن ويدجت معينة ستجد مثلا للإيكسل GtkSheet وهكذا

إن كنت تبحث عن مكتبات أخرى هناك IUP

بالتوفيق

لم افهم

أريد اي شيئ يساعدنا على برمجة واجهات مع لغة السي

البرنامج أريده أن يكون مشابه ل EXCEL في طريقة التعامل مع البيانات

هناك مكتبة تسمى GTK+extra تضم العديد من الإضافات للجيتيكي مثل GtkSheet وGtkPlot وغيره

ألق نظرة هاهنا لتتعلم كيفية عمل شيء مشابه للإيكسل

http://gtkextra.sourceforge...

وفقك الله أخي

احسنت عزيزي

بوركت أخي الحبيب @kuwaitphp

أنا لا أعرف عن ماهية هده الأشياء هل هي مكتبات أو برامج مستقلة أو بيئات تطوير

ممكن توضيح أكتر

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

اعلم أنك تريد استخدام لغة سي، لكن ربما يكون هدفك هو البرنامج وإنتاج برامج رسومية وليس اللغة.

فإذا كان هذا اﻹفتراض صحيح فإن أنسب أداة لإنجاز هذا المطلوب بسرعة هو استخدام أداة التطوير لازاراس التي تستخدم لغة فري باسكال، وهي تتميز بسهولتها في برامج سطح المكتب، يمكنك كتابة أي برنامج ذو واجهة رسومية بها دون الحاجة للتعمق في المكتبات مثل GTK أو QT أو Win32/64 توجد لديها طبقة في الوسط تدعى LCL تستخدمها لتصميم البرامج، وهذه الطبقة تُساعدة على إعادة ترجمة البرنامج دون أي تغيير في عدد من أنظمة التشغيل. وعند الترجمة يتم الربط حسب البيئة الموجود فيها، مثلاً في لينكس يتم إنتاج برنامج يستخدم الـ GTK وفي وندوز يتم استخدام Win32/64 حسب اختيارك وفي ماكنتوش يتم اختيار المكتبة اﻹفتراضية هُناك. ايضاً يمكن إصدار برامج لـ WinCE من داخل وندوز

 وهي موازية للغة سي ومطابقة للغة دلفي. ويمكن مناداة المكتبات المكتوبة بلغة سي من خلالها.

هذه بعض البرامج ذات الواجهة الرسومية المكتوبة بها يمكنك اﻹطلاع عليها:

http://wiki.freepascal.org/...

وهذا رابط لازاراس للتحميل

http://www.lazarus-ide.org

جرب WPF سوف تستطيع عن طريقها انشاء واجهات خرافية. انظر هنا

-2

لم افهم شيء من كلامك اخى