سؤال

أنا C# مبرمج من بدأ باستخدام أوبونتو حول 2 منذ سنوات.أنا الرغبة في معرفة واجهة المستخدم الرسومية البرمجة سواء C أو C++.أنا لا أحب حقا أحادية ، فإنه يميل إلى تحطم على نظام بلدي.لقد فهم أساسي من C++.لم يسبق لي أن عملت في C ، ولكن يبدو باردا.التي أدوات يجب أن تعلم/استخدام ؟ تعطي Pro/سلبيات كل منهما.وذلك بفضل!

هل كانت مفيدة؟

المحلول

ومنذ C ++ هو أكثر دراية لك، قد تجد GTKmm أن يكون أفضل مناسبا، حيث يمكنك استخدام التعابير مثل RAII. للأسف، GTKmm غير مكتملة قليلا ومفقود عدد قليل من قطع الغيار المستعملة أقل من GTK.

وGTK + من تلقاء نفسها، ومع ذلك، يعرض أساسا طراز كائن على غرار ما تجد في C ++، ولكن فقط مع وظائف C. يتم التعامل مع الأمور مثل البناء والهدم في C ++ تتم بشكل واضح في API C وحالات الحاجيات عن طريق مؤشرات حصرا.

وحاول كلا والتي ترى ويناسب المشروع بشكل أفضل.

نصائح أخرى

وأنا يمكن أن يتهم بالتحيز لأنني لم يساهم في gtkmm، لكنني كنت مستخدم أولا، لذلك ... وعلى أية حال، سأكون في غاية يوصي gtkmm إذا كنت راضيا C ++. إدارة الذاكرة هو أسهل بكثير مع gtkmm من مع GTK + لتدار الكائنات عد إشارة تلقائيا مع مؤشرات الذكية. يمكنك أيضا إنشاء كائنات كمتغيرات السيارات (على سبيل المثال على المكدس) ولها حياتهم يتحدد نطاقها. حتى في الممارسة العملية، انه من الاسهل بكثير لتجنب تسرب الذاكرة مع gtkmm من مع GTK +.

آخر <م> ضخمة الاستفادة من gtkmm على GTK + (في رأيي) هو استخدام إطار إشارات من نوع آمن. في GTK +، تحتاج باستمرار لتمرير أشياء مثل مؤشرات باطلة ومن ثم يلقي بها في جميع أنحاء لنوع كنت تعتقد أنها ينبغي أن تكون. في gtkmm، أنت لا تحتاج إلى القيام بذلك، ويمكن الاستفادة من المترجم الإنفاذ نوع السلامة على معالجات الإشارات.

وآخر ميزة كبيرة على C / GTK + هي سهولة اشتقاق فئات جديدة. في GTK +، تحتاج إلى كتابة الكثير من التعليمات البرمجية النمطي وأساسا إعادة تنفيذ-الأشياء التي تحصل مجانا في C ++ كجزء من لغة (مثل الميراث والصانعين، تالفة، الخ). هذا هو أكثر مملة وعرضة للخطأ.

وgreyfade ذكر أن gtkmm غير مكتملة، وانه حق إلى حد ما - gtkmm لا يغطي كل شيء في API GTK + (على الرغم من أنه يقترب بفظاعة). ولكن في الواقع هذه ليست مشكلة لأنه يمكنك دائما استخدام C / GTK + API مباشرة من التعليمات البرمجية gtkmm الخاص بك. هذا التوافق C هو ميزة كبيرة من C ++ على شيء مثل C # أو الثعبان الارتباطات حيث سيكون لديك أي بدائل إذا كان ملزما لم تغطية جزء من API.

والأسباب الحقيقية الوحيدة لاختيار GTK + على gtkmm (IMO) هي التي gtkmm لديه مقدار حمل إضافي صغير لأنه هو مجمع على رأس مكتبة C (ولكن هذا هو عموما مجرد دعوة وظيفة واحدة، والتي ستكون لدينا تأثير ضئيل)، أو إذا كنت أكره أو لا يمكن استخدام C ++.

إذا كنت مبرمج C #، لماذا لا نلقي نظرة على فاكرها <؟ / P>

وأنا استخدم جتك لمعظم حياتي تطبيقات لينكس واجهة المستخدم الرسومية، ولكن كان بيثون ببساطة بطيئة جدا لهذا المشروع وأعمل في الوقت الحالي، لذلك كنت أحاول أن اختيار واحد من GTK + وGTKmm. ثم التقيت فاكرها.

وانها لغة جميلة جديدة، وبالتالي وثائق محدودة جدا في الوقت الراهن، ولكن أعتقد أنه لديه أفضل من كلا العالمين: C # جملة مع سرعة C

أود أن أقترح أن تعلم فالا مع gedit.

http://www.valaide.org/doku.php :فالا

https://launchpad.net/valable :الكسوف

http://code.google.com/p/vtg/ :Gedit

http://abderrahim.arablug.org/blog/ :anjuta

وعلى غرار العديد قلنا، Gtkmm لا توفر لك مع إدارة ذاكرة جيدة، إشارة كائنات عدها، وما إلى ذلك لا تسقط في دائرة واحدة، وإن كان. توثيق. كله من مشروع Gtkmm يعاني من ظواهر "undocumentation"، حيث شارك (ويرسل على مواقع الطرف 3rd) الوثائق هو مجرد مسح جافادوك من الملفات الرأس.

وأردت فقط أن تعرف ما كنت يكون الدخول. على سبيل المثال، تمريره النافذة هي واحدة من الطبقات موثقة على نحو أفضل في Gtkmm .

هل نظرت إلى QT منتديات انه لطيف تصميم C ++، عبر منصة وLGPL

وأعتقد أن أفضل طريقة للذهاب سيتم أولا تعلم gtkmm! بعد الانتهاء مع أساسيات gtkmm، ينبغي أن يكون GTK + اضحة إلى حد ما للتعلم (شريطة أن تعرف C ومريحة مع مؤشرات).

في حال كنت لا تعرف C، ويمكنك معرفة ذلك بسرعة من خلال قراءة وC لغة البرمجة التي كتبها دينيس ريتشي

وأقترح عليك أن تعلم gtkmm أولا لأنها مصممة خصيصا لC ++، وهي تشبه إلى حد ما C # منذ كلاهما الشيئية، لذلك سوف gtkmm يكون من السهل نسبيا لتعلم أولا من GTK +.

وبعد gtkmm، يمكنك الانتقال إلى GTK +

ومعظم شركات مفتوحة المصدر استخدام GTK + بدلا من gtkmm، لذلك GTK + هو worthwile لتعلم!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top