PDA

View Full Version : سوال: آيا Qt بهتر از VisualC هست؟



a_mzadeh
جمعه 22 شهریور 1387, 23:54 عصر
سلام خدمت همگي. راستش چند وقتي بود كه كار با VisualC رو شروع كرده بودم كه با Qt آشنا شدم و رفتم سراغ Qt، تا اينكه امشب يك سوالي برام مطرح شد كه ممنون ميشم اگر كمكم كنين.
گاهي اوقات وقتي كه برنامه Examples and Demos كه همراه Qt در ويندوز نصب ميشه رو اجرا ميكنم، سرعت اون واقعا افتضاحه! ديدم كه خيلي بد ميشه كلي وقت بذاري يه برنامه بنويسي آخرش ببيني كند اجرا ميشه! چرا اين برنامه گاهي اينطور كند اجرا ميشه؟ آيا همه برنامه هاي نوشته شده با Qt همينطوريه؟
مطلب بعدي اينكه به نظر شما چرا گوگل بعد از تجربه ساخت GoogleEarth با Qt اينبار براي توليد Chrome از VisualC استفاده كرده؟ آيا VisualC بهتر از Qt هست؟ (من از مشاهده فايل chrome.exe با يك اديتور متني و مشاهده رشته هاي بكار رفته در برنامه از جمه "Microsoft Visual C++ Runtime Library" حدس ميزنم كه با ويژوال سي نوشته شده باشه-ممكنه حدس من اشتباه باشه- )
حالا تكليف چيه؟ Qt يا VisualC ؟؟؟
نظرتون در مورد wxWidget چيه؟

linux
شنبه 23 شهریور 1387, 00:18 صبح
دانستن این مسایل شاید به شما کمک کند.

1- ویژوال سی یک اسم تجاری هست برای IDE که ماکروسافت برای توسعه نرم افزارها به زبان C/C++ ساخته است .
2- QT فریم ورک (مجموعه از کلاس ها و توابع ) هست که برای ساختن نرم افزار ها مخصوصاGUI طراحی شده است که برای سیستم عامل مختلف unix like OS و ویندوز موجود هست.
حسن استفاده از این فریم ورک قابلیت انتقال روی سیستم عاملهای مختلف هست.

اگر شما برنامه می خواهید بنویسید که فقط در ویندوز قرار هست کار کند ، پس بهترین راه استفاده از api ویندوز mfc هست.

sang9111
شنبه 23 شهریور 1387, 01:33 صبح
ببین دوست عزیز این 2 برای 2 منظور مختلف استفاده می شن مثلا شرکتی می خواد محصولی تولید کنه که در سکوهای مختلف اجرا بشه و نیاز به کد نویسی مجدد نباشه پس چه چیزی بهتر از QT ولی بعضی از شرکت ها مثلا رو ویندوز زوم هستن پس بهتر از حداکثر ظرفیت سیستم عامل استفاده بشه که بهترین win32 است QT هم کاری جز استفاده از win32 انجام نمیده در مک از کتابخانه carbon استفاده می کنه QT کلا سرعت خوبی داره از جاوا و C# که بهتره در بحث مرورگر هم چون مرورگر از نرم افزارهای پر استفاده است از کتابخانه پایه استفاده بشه بهتره چون در استفاده از حافظه موثر است در داخل خوده QT میشه از win32 مستقیما استفاده بشه در ضمن فایرفکس برای توسعه سریع تر می خواد از کیوتی استفاده کنه و دیگه فایرفکس می ره تو QT اینم خبره خوبی برای QT کارها در کل QT بهترین فریم ورک چند سکوی است و رو دست نداره بقیه در مادون اون قرار می گیرن

Nima_NF
شنبه 23 شهریور 1387, 03:28 صبح
- در تکمیل صحبت های دوستان، توجه داشته باشید که Qt از API های win32 در نسخه ویندوز برای پیاده سازی کتابخانه اش استفاده می کند و برنامه های Qt در نسخه ویندوز معمولا با ++VC نیز کامپایل می شوند.
و حتی اگر با ++VC نیز کامپایل نشوند به خاطر استفاده از کتابخانه های ++C و CRT مایکروسافت که همراه SDK windows عرضه می شوند برنامه های Qt نیاز به Visual C++ Runtime Library دارند، پس این دلیلی بر اثبات چیزی نیست.
بدون بررسی دقیق تر در مورد chrome نمی توان نظر قطعی داد.

- شما با کامپایلر ++Visual C به دو طریق MFC و win32 می توانید برنامه بنویسید، با استفاده از MFC امکان cross-platform کردن برنامه تقریبا به صفر می رسد (به خاطر نوع اتومات تولید کدها)، اما با win32 به دلیل شباهت به کدهای سطح پایین سایر سیستم عامل ها (هر چند به سختی توسط شرکت های بزرگ) می توان کاری شبیه به Qt و wxwidgets انجام دهید.


چرا اين برنامه گاهي اينطور كند اجرا ميشه؟ آيا همه برنامه هاي نوشته شده با Qt همينطوريه؟من شخصا با نرم افزارهای تجاری نوشته شده با Qt از جمله mudbox کار می کنم و دلیل کندی آن نیز:
1) بیشتر به خاطر رابط کاربری یا همان skin مخصوص Qt هست، اگر به حالت skin از نوع windows XP تغییر داده شوند کمی سریع تر می شوند.

2) اما حتی در حالت XP و سایر skin ها نیز کمی کندتر از برنامه های نوشته شده با MFC و win32 هست و دلیل آن هم طراحی مجدد تمامی کنترل ها و GUI با خواص جدید هست (در Wxwidgets هم تا حدودی به همین شکل، فقط مشکل خرید و گرفتن لیسانس ندارید)

* می توانید این کاهش اندک سرعت را از معایب تولکیت های cross-platform به شمار بیاورید اما در کل این کندی چندان محسوس نیست و کم است، از لحاظ سرعت قابل مقایسه با برنامه های تحت .Net نیست.



Qt يا VisualC ؟؟؟
نظرتون در مورد wxWidget چيه؟
هر سه آن ها در جای خود کاربرد دارند:
Qt و wxWidget هر دو دردسرهای زیادی در پیاده سازی دارند، در صورتی که برنامه شما فقط برای ویندوز هست بهترین انتخاب همان MFC یا win32 با ++VC هست .

Qt در صورتی که هزینه مهم نباشد و پروژه هم بزرگ و فنی باشد و قصد لیسانس دادن سورس کدها هم نباشد گزینه خوبی است.

wxWidget هم برای شرکت هایی که برنامه خود را به همراه سورس کد به چندین مشتری به فروش می رسانند بهترین انتخاب (و شاید تنها راه ) باشد. مثل برنامه تجاری بزرگی که امثال شروع به نوشتن آن خواهم کرد.

a_mzadeh
شنبه 23 شهریور 1387, 04:30 صبح
- حتی اگر با ++VC نیز کامپایل نشوند به خاطر استفاده از کتابخانه های ++C و CRT مایکروسافت که همراه SDK windows عرضه می شوند برنامه های Qt نیاز به Visual C++ Runtime Library دارند، پس این دلیلی بر اثبات چیزی نیست.

سلام، بعد از تشكر از شما دوست عزيز، ميخواستم بدونم آيا مطلب شما به اين معني هست كه در زمان توليد setup براي برنامه هاي نوشته شده با Qt بايد dll هاي مربوط به كتابخانه هاي VisualC رو هم به برنامه اضافه كنيم؟ اگر جواب شما مثبت هست، بدون استفاده از نرم افزارهايي شبيه dependence چطوري ميشه اون dll ها رو تشخيص داد؟

Nima_NF
شنبه 23 شهریور 1387, 12:52 عصر
بله،
در VC++ 2005 به بعد باید از برنامه های نصب استفاده کنید.
و برای نسخه های قبل از آن، به راحتی با کپی زدن dll ها در فولدر فایل اجرایی می توانید این کار را انجام دهید. (از فولدر \VC\redist\x86 بسته CRT که نسخه dll های آن متناسب با نسخه VC شماست)

اگر از برنامه های installer استفاده کنید ( مثلا installshield یا Setup project همراه VC) هنگام اضافه کردن فایل اجرایی به پروژه در قسمت dependency خودش اتومات تشخیص می دهد و بسته MS C runtime را از داخل ویندوز یا از بسته های آماده خودش به پروژه اضافه می کند، به علاوه سایر dll های مورد نیاز Qt .
در این حالت در هنگام نصب اگر MS C runtime در کامپیوتر کاربر نباشد به صورت خودکار تشخیص داده می شود و نصب انجام می شود.

saeed_Z_F
شنبه 30 شهریور 1387, 20:12 عصر
سلام
خیلی خوشحال شدم در سایت برنامه نویس کسانی هستند که با C++ تا این سطح کار می کنم . من از این به بعد مشتریه پرو پا قرص شما هستم جسارتا 1 نکترو خواستم بیان کنم :
1- گوگل کروم بر پایه موتور مرورگر وب Webkit نوشته شده که این موتور با استفاده از KHTML توسعه پیدا کرده و KHTML نیز برپایه KDE و در نهایت زیر بنای آن Qt می باشد .