PDA

View Full Version : سوال: کدوم بهتره؟ GTK یا wxWidgets یا QT



amir_saniyan
دوشنبه 10 تیر 1387, 17:18 عصر
سلام

من یک سوال دارم:

اگه بخواهیم کلا مستقل از سکو برنامه بنویسیم، به نظر شما کدوم بهتره؟ GTK یا wxWidgets یا QT (یا شاید چیز دیگه)؟

البته اگه می‌شه سخت بودن Library رو در جواب‌هاتون در نظر نگیرید. به هر حال مثلا کسی که یک C کار هست GTK براش مشکل نداره. منظورم اینه که مثلا نگید GTK بده چون کار با C زجر آوره. آینده کدوم بهتره؟ چون همشون تقریبا یک هدف رو دنبال می‌کنند (مستقل از سکو). خیلی از پروژه‌های حتی بزرگ وسط راه دیگه ادامه داده نشدند (مثلا NDOC). کدوم رو الان انتخاب کنیم در آینده هم با موفقیت ادامه پیدا می‌کنه.

[فکر کنم یک کلاس انشا باید برم :بامزه:]

سپاس.

amir_saniyan
دوشنبه 10 تیر 1387, 17:27 عصر
راستی، نظر خودم یادم رفت... :)

من فکر کنم GTK چون تا اونجایی که فهمیدم wxWidgets و QT و GNOME و کلی پروژه دیگه در لینوکس از GTK+ استفاده می‌کنند، حالا اگه GTK رو بی‌خیال بشند همه این پروژه‌ها هم ناکار می‌شند. ولی آخرش هم دقیقا نفهمیدم GTK+ تو ویندوز هم به صورت کامل پشتیبانی می‌شه یا نه؟

Nima_NF
چهارشنبه 12 تیر 1387, 04:09 صبح
راستی، نظر خودم یادم رفت... :)

من فکر کنم GTK چون تا اونجایی که فهمیدم wxWidgets و QT و GNOME و کلی پروژه دیگه در لینوکس از GTK+ استفاده می‌کنند، حالا اگه GTK رو بی‌خیال بشند همه این پروژه‌ها هم ناکار می‌شند.
خیر این طور نیست، Qt در لینوکس وابسته به کتابخانه های دیگر نیست و مستقیم از Xlib استفاده می کند.
wxWidgets هم به شما اجازه می دهد به طور مستقیم با X11 بدون وابستگی به سایر کتابخانه ها برنامه بنویسید و یا در صورت تمایل با انتخاب لایه زیرین Motif و یا +GTK برای لینوکس برنامه بنویسید.

در حال حاضر Qt پیشرفته ترین تولکیت هست، اما بزرگترین مشکل آن تجاری بودن و گران بودن آن هست (برای نرم افزار های غیر کد باز) لذا برای انجام پروژه های تجاری کوچک مناسب نیست، لذا در این موقعیت دو تولکیت دیگر مطرح می شوند.

sang9111
چهارشنبه 12 تیر 1387, 05:53 صبح
حرف آقا نیما کاملا صحیح است qt در برنامه های تجاری یه لاینست گران داره که برای کارهای کوچیک نمی صرفه ولی در متن باز بینظیره .... مهمترین برتری qt منسجم بودن کتابخانه هاش است و کلا امکاناتش بیشتر است ولی سخت تر هم است بخصوص از wxWidget و کلا به زبان عامیانه تر با پدر مادر تر است سرعت توسعه اش هم زیاد است و کتابخانه های زیادی بهش اضافه می شه

amir_saniyan
چهارشنبه 12 تیر 1387, 22:45 عصر
خیر این طور نیست، Qt در لینوکس وابسته به کتابخانه های دیگر نیست و مستقیم از Xlib استفاده می کند.

این لینوکس چقدر کتابخونه داره؟؟؟؟؟؟ :گیج:
Xlib چیه دیگه؟؟؟؟؟:عصبانی++: بدرد بخور هست؟

man4toman
پنج شنبه 13 تیر 1387, 16:06 عصر
سلام
برای توضیحات Xlib :

http://en.wikipedia.org/wiki/Xlib
http://tronche.com/gui/x/xlib/

Nima_NF
پنج شنبه 13 تیر 1387, 16:26 عصر
Xlib یا همان رابط سطح پایین پروتکل X Window System به شما اجازه می دهد که کارهای اصلی سیستم عامل یونیکس مانند کار با پنجره ها ، کیبرد و موس و کارهای گرافیکی و... را انجام دهید ولی از آنجا که سطح پایین می باشد و همه امکانات گرافیکی توسط آن پیاده سازی نشده است شما باید از یکی از کتابخانه هایی که ذکر کردید استفاده کنید، که Qt و +GTK به طور مستقیم از آن برای پیاده سازی خود استفاده می کنند لذا وابسته به کتابخانه دیگری نیستند، شکل زیر این موضوع را نشان می دهد:
19830


ضمنا در این لینک توضیحاتی داده شده است که می توانید مطالعه کنید:
تفاوت برنامه نویسی در لینوکس و ویندوز (http://barnamenevis.org/forum/showpost.php?p=457202&postcount=7)

ahmad598
پنج شنبه 21 آذر 1387, 22:58 عصر
با توجه با اینکه شما گفته بودید مستقل از سکو (cross platform) به نظرتون جاوا از همه بهتر نیست؟ هم آینده داره چون پشتیبانش سانه و هم اینکه الان به طور گسترده ای استفاده می شه. البته نمی دونم، شاید جاوا هم از همین چیزها استفاده کنه. اگه کسی اطلاعاتی داره بگه ممنون میشم. می دونم که می تونه از QT استفاده کنه، ولی به خودی خود فکر نمی کنم.

sang9111
جمعه 22 آذر 1387, 07:51 صبح
با توجه با اینکه شما گفته بودید مستقل از سکو (cross platform) به نظرتون جاوا از همه بهتر نیست؟ هم آینده داره چون پشتیبانش سانه و هم اینکه الان به طور گسترده ای استفاده می شه. البته نمی دونم، شاید جاوا هم از همین چیزها استفاده کنه. اگه کسی اطلاعاتی داره بگه ممنون میشم. می دونم که می تونه از QT استفاده کنه، ولی به خودی خود فکر نمی کنم.

کلا فلسفه و نحوه کار جاوا با این کتابخانه ها متفاوت است جاوا از یک ماشین مجازی استفاده می کنه به خاطر همین شما فقط یک بار برنامه رو کامپایل می کنید و در همه سیستم ها اجرا میشه ولی در این ابزار ها شما فقط کد رو عوض نمی کنید (البته بعضی موارد باید یه تغییراتی داد) ولی باید در هر محیطی جداگانه کامپایل بشه
و البته جاوا ضعف هایی هم در برابر این ابزار ها داره که زیاد ضعف حساب نمیشه
مثلا یک شرکت می خواد یک ابزار مهندسی با گرافیک 3 بعدی و محاسبات پیچیده بنویسه که روی قریب به اتفاق سیستم عامی ها با کمترین تغییر اجرا بشه اون موقع دیگه نمیشه از جاوا استفاده کرد چون کند و در پروسز های بزرگ کند عمل می کنه (نمونش matlab)
در نتیجه میای و از این ابزار ها استفاده می کنه حالشم میبری:لبخند:

Bayazee
شنبه 23 آذر 1387, 23:37 عصر
البته حتما در جریان هستید که کیوت یا Qt نسخه آزاد هم داره . و هم برای کارای تجاری و هم آزاد و اپن سورس مناسب هست . نسب به بقیه ظاهرا برتری های خوبی داره .

کامبیز اسدزاده
جمعه 04 بهمن 1392, 09:59 صبح
در حال حاظر با سرعتی که در پیشرفت Qt میشه دید انتخاب آن خیلی بهتره چون برای کار با طراحی و تولید GUI مورد نظرتون خیلی بهتر از wxWidgets جواب میده.
درضمن کیوت نسخه آزاد هم داره و در همه پروژه های کوچکو بزرگ میشه ازش استفاده کرد تنها در صورت کامپایل Static شما نیاز به خرید لیسانس آن دارید دی غیر اینصورت غیرقانونی است.

و درضمن به یه نکته هم اشاره کنم در کنار اینها استفاده از کتابخانه های Boost و wxWidgets امکان پذیر هست یعنی محدودیتی در استفاده انواع کتابخانه ها هنگام انتخاب وجود ندارد.