# Native Code > برنامه نویسی با C > برنامه نویسی در محیط QT و هم خانواده هایش >  هدف از استفاده QT چیه؟

## amin1softco

من با کمی جستجو فهمیدم که GTK,wxWidgetوQT همگی برای این به وجود اومدن که برنامه ما کروس پلاتفرم باشه یعنی در بیشتر سیستم عامل ها کار بده و مثل اینکه GTK مربوط به سی هست و wxWidget مربوط به سی پلاس پلاس و QT هم مربوطه به سی پلاس پلاسه و اگه بخوای از نرم افزار استفاده تجاری کنی هزینه داره ولی اون دوتا دیگه هزینه ایی ندارند ؟؟؟/ آیا اینها دسته؟؟؟؟؟
و اینکه بیشتر برای برنامه نویسی موبایل QT کاربرد داره و مثل اینکه شرکت نوکیا هم توسعش می ده؟؟؟؟؟/
آیا غیر از این موارد کاربرد دیگه ایی داره QT؟؟؟؟؟؟

----------


## Behrooz_CS

اگر به سایت خود QT رجوع کنی به جواب سوالت می رسی 
QT در همه زمینه ها کاربرد داره نه فقط موبایل

----------


## حامد مصافی

با خريد qt توسط نوكيا لايسنس lgpl هم به لايسنس هاي قبلي qt يعني (gpl و qpl) اضافه شده است، لذا شما مي توانيد برنامه هاي تجاري با qt بنويسيد، مگر اينكه تغييري در سورس qt اعمال كنيد و قصد انتشار آن را نداشته باشيد كه در اين صورت بايد لايسنس تجاري آن را دريافت كنيد.

----------


## amin1softco

برای چه اهدافی غیر از برنامه نویسی موبایل میشه ازش استفاده کرد ؟ !!! 
منظورم یک مثال قابل توجه هست ؟ اینجور که من فهمیدم مثل اینکه با دیتا بیس هم رابطش خوبه درسته؟؟؟؟

----------


## Behrooz_CS

همونطور که گفتم به سایت خودش سر بزن نمونه پروژه های انجام شده را گذاشته. خودت ببینی بهتره

----------


## amin1softco

اینم برای آیندگان که از این تاپیک خواهند گذشت:
کلا QT برای تمام زمینه ها تابع داره یعنی وقتی شما این توابع یاد گرفتید یعنی می تونید برای هر چیزی برنامه بنویسید در حال حاضر :


 Advanced GUI 3D Graphics with OpenGL Multithreading Embedded Windowing System Inter-Object Communication 2D Graphics Multimedia Framework WebKit Integration Network Connectivity XML Scripting Engine Database

 
یعنی با هر کتابخانه استانداردی می تونید کار کنید و یه قدرت خفنیه :چشمک: 
http://qt.nokia.com/products

----------


## Nima_NF

حدودا یک سالی هست که شرکت Nokia شرکت سازنده Qt را خریداری کرده، جالب اینکه تا آن زمان اصلا بحش برنامه نویسی بر روی موبایل/ symbian در کار نبود و بیشتر روی windows/Mac/linux تمرکز شده بود.
nokia قصد داشت که آن را برای برنامه نویسی موبایل خود نیز آماده کند و این خرید را انجام داد.  پس این طور فکر نکنید که چون اسم Nokia الآن روی شرکت هست یعنی برنامه نویسی موبایل. این کتابخانه یکی از وسیع ترین و کامل ترین نمونه ها هست.

Google earth ، Autodesk Mudbox3D و خیلی از نرم افزارهای معروف و پرکاربد دیگر با آن نوشته شده اند، در آینده نیز بیشتر خواهند شد، چون همانطوری که دوستان گفتند الآن لیسانس LGPL آن هم عرضه شده است و رایگان می توانید برنامه تجاری بنویسید.

----------


## حامد مصافی

در راستاي همين هدف نوكيا qt را به maemo پورت كرد، لذا يك سكوي ديگر به سكوهاي قابل استفاده در qt اضافه شد. يكي از برتري هاي qt نسبت به ساير تولكيت ها امكان بايند از زبان هايي مثل جاوا، پايتون، php و ... است.

----------


## Behrooz_CS

از معایب QT هم باید بگم که تا دلت بخواد توش BUG داره ! میگی چقدر باگ داره ؟ باید بگم در حد دیوانه کردن برنامه نویس هست ! :خیلی عصبانی:

----------


## حامد مصافی

@ Behrooz_CS :
نكته عجيب و جالبي بود، مثلاً چه باگ هايي؟

----------


## Behrooz_CS

مثلا توی نسخه 4.5 بود که QMake کلا توی لینوکس مشکل داشت و Build نمی کرد ! 

مشکلات QT بر می گرده به اینکه وقتی یه چیز جدید توش اضافه می شه متاسفانه خوب روی پلت فرم های مختلف تستش نمی کنن ! در نتیجه مثلا روی ویندوز کار می کنه ولی روی لینوکس همون امکان کار نمی کنه !

شما اگر به مشکلی بر خورد کردید حتما اون را توی لیست Bug Report اون را گزارش بدید تا بهش رسیدگی بشه !

----------


## Nima_NF

> از معایب QT هم باید بگم که تا دلت بخواد توش BUG داره ! میگی چقدر باگ داره ؟ باید بگم در حد دیوانه کردن برنامه نویس هست !


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

بارها در بخش پشتیبانی دیده شده است که bug ها فورا یافته می شوند، اما چون مشتری تجاری نیست، به ان ها اعلام می شود که باید چند روز صبر کند تا نسخه .xxx عرضه شود و اگر خریداری کرده اید شماره مشتری را بدهید تا patch را ارسال کنیم.

بالاخره همه چیز در این دنیا مجانی نیست، شما پول می پردازید و در عوض خدمات دریافت می کنید. چیزی که رایگان می گیرید مطمئنا خدمات پشتیبانی هم نخواهد داشت. هر چند که این موضوع خیلی هم مهم نیست و می توان با برگشت به آخرین نسخه قبلی یا منتظر ماندن برای نسخه جدید مشکل را حل کرد.

----------


## vcldeveloper

> در راستاي همين هدف نوكيا qt را به maemo پورت كرد، لذا يك سكوي ديگر به  سكوهاي قابل استفاده در qt اضافه شد.


فقط Maemo نیست. نوکیا Qt را به صورت Optional روی گوشی های Symbian^3 که قرار هست در اواسط سال 2010 به بازار عرضه بشند، ارائه میکنه. در Symbian^4 کلا Qt رابط پیش فرض کاربر را فراهم میکنه، و دیگه یک گزینه اختیاری نخواهد بود.

----------


## حامد مصافی

> مثلا توی نسخه 4.5 بود که QMake کلا توی لینوکس مشکل داشت و Build نمی کرد !


من نسخه 4.5 را روي لينوكس دارم، اما چنين مشكلي وجود ندارد، اگر qmake  كار نكند هيچ برنامه اي قابل كامپايل نخواهد بود، يعني ممكن است محصولي طوري عرضه شود كه *اصلاً* كار نكند؟!!

----------


## amin1softco

من یک سوال ذهنم رو مشغول کرده اگه یک ساله که نوکیا QT رو خریده پس قبلا برای برنامه نویسی سیمبین  از چی استفاده می شده؟ البته غیر از جاوا/؟

----------


## Behrooz_CS

> من نسخه 4.5 را روي لينوكس دارم، اما چنين مشكلي وجود ندارد، اگر qmake  كار نكند هيچ برنامه اي قابل كامپايل نخواهد بود، يعني ممكن است محصولي طوري عرضه شود كه *اصلاً* كار نكند؟!!


ببین ، بعضی وقت ها بازی در میاره ! اینجوری هم نیست که کلا کار نکنه . مثلا یه بازی های مسخره ای در میاره . بعضی وقت ها به فاصله خالی یا Enter خالی ته فایل سورس گیر می ده و کامپایل نمی شه !!!! این برای من توی ویندوز هم پیش اومده که 1 ساعت سر کار بودم !

----------


## Nima_NF

> من یک سوال ذهنم رو مشغول کرده اگه یک ساله که نوکیا QT رو خریده پس قبلا برای برنامه نویسی سیمبین  از چی استفاده می شده؟ البته غیر از جاوا/؟


زبان اصلی symbian زبان C++‎ بوده، برای برنامه نویسی برای آن باید SKD و کامپایلر مخصوص C++‎ آن را از سایتش دانلود می کردید و با آن برنامه می نوشتید، یعنی کلا باید کدنویسی آن را یاد می گرفتید. (در فروم جستجو کنید قبلا کامپایلر و جزییات را گفته ام)

 اما الآن با Qt اکثر کدهای معروف واسط کاربری و کارهای اصلی حافظه و غیره همه در همه سیستم عامل ها یکی هست، علاوه بر مشترک ها قابلیت های جدید نیز تحت کلاس های جدید در کنار مشترک ها وجود دارد، این طوری زمان کمتری صرف می شود تا برنامه ها نوشته شوند، چون اکثر افرادی که Qt می دانند، ظرف مدت کوتاهی می توانند قابلیت های مختص Symbian را نیز یاد بگیرند.

----------


## حامد مصافی

> ببین ، بعضی وقت ها بازی در میاره ! اینجوری هم نیست که کلا کار نکنه . مثلا یه بازی های مسخره ای در میاره . بعضی وقت ها به فاصله خالی یا Enter خالی ته فایل سورس گیر می ده و کامپایل نمی شه !!!! این برای من توی ویندوز هم پیش اومده که 1 ساعت سر کار بودم !


من هم چنين مشكلاتي بعد از ارائه qt 4.x را ديده ام، اما اين مشائل مربوط به نحوه كامپايل است نه كانفيگ qmake، در واقع اكثر اوقات به دليل تغيير عمده در يك كلاس (مانند افزودن meta object macro) است كه با clean يا حذف دستي فايل هاي *.o قابل رفع است.

----------


## Behrooz_CS

> من هم چنين مشكلاتي بعد از ارائه qt 4.x را ديده ام، اما اين مشائل مربوط به نحوه كامپايل است نه كانفيگ qmake، در واقع اكثر اوقات به دليل تغيير عمده در يك كلاس (مانند افزودن meta object macro) است كه با clean يا حذف دستي فايل هاي *.o قابل رفع است.


نه مشکلی که من داشتم با این چیزا حل نمی شد ! همه چیز را Clean می کردم اما فایده نداشت
ولی وقتی چند تا فاصله خالی ته فایل را حذف می کردیم درست می شد!!

----------

