محاسبات کوانتومی چیست؟
اردیبهشت ۱۲, ۱۳۹۶QML یا کیو ام ال چیست؟
اردیبهشت ۱۲, ۱۳۹۶Qt یا کیوت یک چارچوب نرم افزاری چند پلتفرمی یا به عبارتی کراس پلتفرم است و از آن برای توسعه نرم افزار های کاربردی که می توان آن ها را بر روی پلتفرم های مختلف سخت افزاری و نرم افزاری و بدون تغییر یا با تغییرات خیلی کم در کد اصلی، اجرا کرد استفاده می شود و در عین حال یک محیط توسعه نرم افزار از نوع Native به شمار می رود و از توانایی ها و سرعت این حالت برنامه نویسی برخوردار می باشد. Qt در حال حاضر به صورت کد منبع باز توسط شرکت Qt (شرکتی که سهام آن در بازار بورس Nasdaq Helsinki عرضه شده است) و تیم پروژه Qt شامل توسعه دهندگان مختلف و شرکت های مختلف که برای پیشبرد Qt تلاش می کنند، در حال توسعه یافتن می باشد. Qt هم به صورت تجاری و هم به صورت کد منبع باز و تحت پروانه های GPL 2.0، GPL 3.0 و LGPL 3.0 در دسترس می باشد.
هدف ها و توانایی های کیوت Qt
Qt برای توسعه برنامه های کاربردی چند پلتفرمی و رابط های کاربری گرافیکی (GUI ها) مورد استفاده قرار می گیرد با این وجود برنامه های بدون رابط کاربری گرافیکی مانند ابزار های Command Line و یا کنسول سرور ها را نیز می توان به کمک آن توسعه داد. مثالی از یک برنامه بدون رابط کاربری گرافیکی که با Qt توسعه داده شده است فریم ورک تحت وب Cutelyst می باشد. برنامه های دارای رابط کاربری گرافیکی که با Qt توسعه داده شده اند می توانند رابط کاربری مشابه حالت Native داشته باشند که در این صورت Qt در دسته ابزارهای ویجت قرار می گیرد.
Qt از C++ استاندارد به همراه افزونه هایی شامل سیگنال ها و شکاف ها استفاده می کند (سیگنال و اسلات یه ساختار زبان به کار رفته در QT می باشد که برای ارتباط بین اشیا معرفی شده است) که این مدیریت رویداد ها را آسان تر می کند و این خود به توسعه رابط کاربری گرافیکی و برنامه های کاربردی سرور که اطلاعات رویداد مخصوص به خود را دارند و باید آن ها را به نحو مناسب پردازش کنند کمک می کند. Qt از کامپایلر های متعددی پشتیبانی می کند که از بین آن ها می توان به کامپایلر GCC ++C و نیز ویژوال استودیو اشاره کرد. Qt همچنین فریم ورک Qt Quick را نیز ارائه می کند که شامل یک زبان اسکریپت نویسی و به عبارتی یک زبان مدل سازی به نام QML است که امکان استفاده از جاوا اسکریپت برای بخش منطقی را فراهم می کند. با Qt Quick، توسعه سریع برنامه های کاربردی برای گوشی های تلفن همراه امکان پذیر شد البته می توان منطق را با استفاده از کد Native نیز نوشت تا بهترین عملکرد ممکن به دست آید. Qt می تواند با کمک قید های زبانی به چند زبان برنامه نویسی دیگر نیز مورد استفاده قرار گیرد. این چارچوب بر روی پلتفرم های اصلی دسکتاپ و بر خی از پلتفرم های موبایل اجرا می شود و پشتیبانی جامعی از بین المللی سازی دارد. ویژگی های بدون نیاز به رابط کاربری گرافیکی شامل دسترسی به بانک های اطلاعاتی SQL، تجزیه XML، تجزیه JSON، مدیریت ریسه ها و پشتیبانی شبکه می باشد.
برای آشنایی بیشتر با QML میتوانید به مقاله زیر مراجعه نمایید:
کاربرد کیوت Qt
سازمان های مصرف کننده کیوت
Qt به طور گسترده توسط سازمان های زیادی استفاده می شود که از بین آن ها می توان به آژانس فضایی اروپا، DreamWorks، Lucasfilm، Panasonic ، Philips، Samsung، Siemens، Volvo،Walt Disney، Blizzard Entertainment، Electronic Arts و AMD اشاره کرد.
رابط کاربری گرافیکی و محیط های دسکتاپ
چندین رابط کاربری گرافیکی و محیط های دسکتاپ از Qt به عنوان ابزار ویجت استفاده می کنند.
- AsteroidOS: سیستم عاملی منبع باز برای ساعت های هوشمند
- Avionics: سیستم سرگرمی داخل پرواز شرکت پاناسونیک
- DDE ( محیط دسکتاپ Deepin) برای DDE لینوکس
- Hawaii: یک محیط دسکتاپ بر پایه Wayland و Qt Quick
- KDE Plasma: یک محیط دسکتاپ برای شکل های مختلف مانند کامپیوتر ها، تبلت ها و گوشی های هوشمند
- LiriOS: یک محیط کار بر مبنای Qt/QML
- Lumina: یک محیط دسکتاپ که برای PC-BSD طراحی شده است
- LXQt( محیط دسکتاپ سبک X11): جانشین LXDE که بر مبنای Qt طراحی شده است.
- OPIE: یک رابط کاربری گرافیکی برای Sharp Zaurus
- Sailfish OS: یک سیستم عامل تلفن همراه که توسط شرکت Jolla توسعه داده شده است.
- Sky Q: سیستم سرگرمی خانگی برای شرکت Sky
- Tesla Model S: مورد استفاده در رابط کاربری ماشین های تسلا
- Ubuntu Touch: یک رابط کاربری تلفن همراه که توسط شرکت Canonical توسعه داده شده است.
- webOS: یک سیستم عامل چند کاره برای دستگاه های هوشمند نظیر تلویزیون ها و ساعت های هوشمند
- Yunit: شاخه جامعه کاربری Unity8-Shell
نرم افزار های کاربردی که از Qt استفاده می کنند
نرم افزار های مهمی که از Qt یا QML استفاده می کنند:
- Adobe Photoshop Elements
- Radeon Software Crimson
- Autodesk Maya
- Bitcoin Core
- CryEngine
- Dragonframe: نرم افزار انیمیشن های استاپ موشن
- FreeMat: محیطی کد منبع باز برای محاسبات عددی
- Google Earth
- Orange: بسته ویژه داده کاوی
- QGIS: سیستم اطلاعات جغرافیایی
- Scribus: نرم افزار انتشاری برای دسکتاپ
- Sibelius: نرم افزار ساخت قطعات موسیقی
- Skype
- Spotify نسخه لینوکس
- Stellarium یک نرم افزار آسمان نما
- Subsurface: برنامه ای برای ثبت و برنامه ریزی غواصی که برای اولین بار توسط Linus Torvalds توسعه داده شد.
- Telegram Desktop: نرم افزاری پیام رسان که برای ویندوز، مک و لینوکس در دسترس است.
- VirtualBox: بسته نرم افزاری مجازی سازی سیستم عامل ها
- VLC media player
- WPS Office
- XnView MP
معماری نرم افزار کیوت Qt
Qt در زمان انتشار بر مبنای چند مفهوم کلیدی طراحی شده بود:
مفهوم کامل رابط کاربری گرافیکی
در زمان عرضه، Qt از موتور رنگ و کنترل های مخصوص خود استفاده می کرد که هنگامی که ویجت های مورد نظر کشیده می شد ظاهر آن ها را در پلتفرم های مختلفی که قرار بود بر روی آن ها اجرا شود شبیه سازی می کرد. این قابلیت عملیات پورت بین پلتفرم های مختلف را آسان تر می کرد زیرا تنها تعداد کمی دسته در Qt حقیقتا به پلتفرم هدف وابسته بودند. با این وجود این قضیه گاها باعث ظهور اختلافات کوچکی می شد که علت آن بی نقض نبودن عملیات شبیه سازی بود. نسخه های جدید Qt، در پلتفرم هایی که دارای مجموعه ابزار ویجت به صورت نیتیو هستند از API های نیتیو پلتفرم های مختلف استفاده می کنند تا معیار های مختلف را جستجو کنند، بیشترین کنترل ممکن را داشته باشند و در نهایت دچار چنین مشکلاتی نشوند. در برخی از پلتفرم ها( مانند MeeGo و KDE) Qt به عنوان API نیتیو به شمار می رود. برخی جعبه ابزار های گرافیکی قابل حمل تصمیم های طراحی متفاوتی گرفته اند برای مثال wxWidgets از جعبه ابزار های پلتفرم هدف برای اجرای خود استفاده می کند.
سیگنال ها و اسلات ها در کیوت Qt
یک واحد زبانی مورد استفاده در Qt که بین اشیا مختلف ارتباط برقرار می کند. این کار اجرای observer pattern را راحت می کند و در عین حال از ایجاد کد boilerplate جلوگیری می کند. مفهوم کلی به این صورت است که ویجت های رابط کاربری گرافیکی می توانند سیگنال هایی را ارسال کنند که حاوی اطلاعات مربوط به رویداد هاست که این اطلاعات توسط کنترل های دیگر و به کمک توابعی ویژه که به آن ها شکاف ها گفته می شود دریافت می شوند .
کامپایلر Meta Object
کامپایلر Meta Object که به اختصار moc خوانده می شود ابزاری است که با استفاده منابع یک نرم افزار Qt اجرا می شود.این ابزار برخی از ماکرو های کد C++ را به عنوان یادداشت ترجمه می کند و از آن برای تولید کد افزوده C++ به همراه اطلاعات meta در مورد کلاس های به کار رفته در برنامه، استفاده می کند. این اطلاعات meta توسط Qt مورد استفاده قرار می گیرند تا تا ویژگی های برنامه نویسی را که به صورت native در C++ موجود نیست در اختیار کاربر بگذارند. این ویژگی ها عبارتند از: سیگنال ها و شکاف ها،درون گرایی و فراخوانی توابع به صورت غیر هم زمان.
پلتفرم های پشتیبانی شده در کیوت Qt
Qt بر روی پلتفرم های بسیاری کار می کند. در ادامه لیست پلتفرم هایی که به صورت رسمی پشتیبانی می شوند ارائه شده است.
توضیح | پلتفرم |
Linux/Unix |
|
Qt برای X Window System (Linux, *BSD, HP-UX, Solaris, AIX), | X11 |
Qt برای Wayland. برنامه های Qt می توانند بین Backend های گرافیکی مانند Wayland و یا X در زمان بارگیری با استفاده از command line پلتفرم را تغییر دهند. این حالت باعث انتقال بی نقص برنامه های Qt از X11 به Qt می شود. | Wayland |
Qt برای پلتفرم های جاسازی شده(دستیار های شخصی دیجیتال، گوشی های هوشمند و …) به عنوان چند پلتفرم که به تکنولوژی نمایش بستگی دارد موجود است(DirectFB, LinuxFB and EGLFS) | Embedded Linux |
Qt برای اندروید که قبلا با نام Necessitas شناخته می شد. | Android |
پلتفرم های Apple |
|
Qt برای macOS. از برنامه های کاربردی بر روی Cocoa نیز پشتیبانی می کند | macOS |
Qt برای پلتفرم های ios ( آیفون، آیپد) | iOS |
پلتفرم های Microsoft | |
Qt برای ویندوز XP، Vista،7،8،10 | Windows |
Qt برای Windows CE 6و Windows Embedded Compact 7 | Windows CE |
پشتیبانی از نرم افزار های ویندوز 8 بر پایه WinRT و همچنین Windows Phone 8 | Windows RT |
سایر پلتفرم ها | |
Qt برای Integrity | Integrity |
Qt برای QNX | QNX |
Qt برای VxWorks | VxWorks |
پس از این که نوکیا کد منبع Qt را برای جامعه کاربری باز کرد پورت های مختلفی بر روی Gitorious ظاهر شدند. همچنین پورت هایی از Qt نیز وجود دارند که هنوز در دسترس هستند ولی دیگر پشتیبانی نمی شوند.
نسخه ها ی کیوت Qt
در مجموع 4 نسخه از Qt موجود است که عبارتند از Community, Indie Mobile, Professional و Enterprise . نسخه Community تحت گواهی های کد منبع باز عمل می کند در حالی که سایر نسخه ها که دارای کتابخانه ها و امکانات بیشتر هستند( شامل نمودار ها و تصویرسازی داده ها، کنترل های Enterprise، کیبرد مجازی و …) به صورت تجاری و توسط شرکت Qt فروخته می شوند.
پروانه نرم افزاری کیوت Qt
Qt تحت پروانه نرم افزار های رایگان GPL 3.0, LGPL 3.0 و LGPL 2.1 در دسترس می باشد. لازم به ذکر است برخی ماژول ها تنها تحت پروانه GPL در دسترس هستند .این نکته به این معناست که نرم افزار های کاربردی که به این ماژول ها مرتبط می شوند نیز باید از آن پروانه تبعیت کنند.
به علاوه، Qt همواره تحت پروانه تجاری نیز در دسترس بوده که اجازه توسعه نرم افزار های کاربردی اختصاصی بدون هیچ محدودیتی در زمینه پروانه را به کاربر می دهد.
ماژول های نرم افزار کیوت Qt
از Qt 4.0 به بعد، این چارچوب به ماژول های جدا تفکیک شد. در Qt 5.0 معماری برنامه حتی بیشتر از قبل بر پایه ماژول ها قرار گرفت. در حال حاضر Qt به ماژول های ضروری(essential) و ماژول ها افزونه ای (add-non)تقسیم می شود.
Qt Essentials
ماژول | توضیحات |
Qt Core | تنها ماژول ضروری Qt که حاویه دسته هایی است که توسط سایر ماژول ها مورد استفاده قرار می گیرند. این دسته ها شامل سیستمmeta object- هم زمانی و threading، محفظه ها، سیستم رویداد ها، پلاگین ها و امکانات مربوط به ورودی و خروجی می شود. |
Qt GUI | ماژول مرکزی رابط کاربری گرافیکی. در Qt 5 این ماژول به OpenGL وابسته است اما دیگر شامل هیچ دسته ای از ویجت ها نمی شود. |
Qt Widgets | حاوی دسته هایی برای نرم افزار های کاربردی کلاسیک دارای رابط های کاربری گرافیکی بر پایه ویجت ها و دسته های QsceneGraph. در Qt 5 از Qt GUI جدا شد. |
Qt QML | ماژولی برای زبان های QML و JavaScript |
Qt Quick | ماژول نرم افزار های کاربردی دارای رابط کاربری گرافیکی که با استفاده از QML2 نوشته شده اند |
Qt Quick Controls | کنترل های شبیه به ویجت برای Qt Quick که برای نرم افزار های دسکتاپ در نظر گرفته شده است |
Qt Quick Layouts | طرحی برای مرتب کردن اجزا در Qt Quick |
Qt Network | لایه انتزاعی شبکه به همراه پشتیبانی از TCP, UDP, HTTP, SSL و از نسخه 5.3 به بعد با پشتیبانی از SPDY |
Qt Multimedia | دسته هایی برای کارایی های صوتی، تصویری، رادیویی و دوربین |
Qt Multimedia Widgets | ویجت های Qt Multimedia |
Qt SQL | حاوی دسته هایی برای یکپارچه سازی بانک اطلاعاتی با استفاده از SQL |
Qt WebEngine | مجموعه جدیدی از API های Qt Widget و QML webview بر پایه Chromium |
Qt Test | دسته هایی برای تست واحد نرم افزار ها و کتابخانه های Qt |
دسته هایی برای تست واحد نرم افزار ها و کتابخانه های Qt
Qt add-ons
ماژول |
توضیحات |
Active Qt |
دسته هایی برای نرم افزار های کاربردی که ازActiveX استفاده می کنند. |
Qt Bluetooth |
دسته هایی برای دسترسی به سخت افزار بلوتوث |
Qt D-Bus |
دسته هایی برای IPC با استفاده از پروتکل D-Bus |
Qt NFC |
دسته هایی برای دسترسی به سخت افزار NFC. در حال حاضر تنها به صورت رسمی بر روی سخت افزار بلک بری پشتیبانی می شود. |
Qt OpenGL |
ماژول Legacy حاوی دسته های OpenGL از Qt 4.0- در Qt 5.0 کاربرد مشابه در Qt GUI پیشنهاد می شود. |
Qt Location |
دسته هایی برای دسترسی به GPS و دیگر سرویس های مکان یابی و برای نقشه برداری و جهت یابی. این سرویس از ماژول Mobility در Qt 4.0 جدا شده است و توسط اندروید، بلک بری، ios، لینوکس، ویندوز و Sailfish OS پشتیبانی می شود. |
Qt Script |
ماژول Legacy برای کد نویسی برنامه Qt توسط ECMAScript/JavaScript. در Qt 5.0استفاده از دسته های مشابه در Qt QML پیشنهاد می شود. |
Qt Sensors |
دسته هایی برای دسترسی به سنسور های سخت افزاری مختلف موبایل ها. در Qt 4.0 بخشی از ماژول Qt Mobile به شمار می رفت. بر روی اندروید، بلک بری، ios، WinRT، Mer و لینوکس پشتیبانی می شود. |
Qt Serial Port |
دسته هایی برای دسترسی به سریال پورت های سخت افزاری و مجازی. بر روی ویندوز، لینوکس و macOS پشتیبانی می شود. |
Qt WebChannel |
دسترسی به اشیا Qt به HTML/Js را از طریق WebSockets فراهم می کند. |
Qt WebKit |
نصب و اجرا و API WebKitبرای Qt |
Qt WebKit Widgets |
API ویجت برای Qt WebKit |
Qt WebSockets |
امکان استفاده از WebSocket را فراهم می کند. |
Qt XML |
ماژول Legacy حاوی دسته هایی برای XML API های از نوع SAX و DOM. در Qt Core توسط QxmlStreamReader و QxmlStreamWriter جایگزین شده است. |
Qt XML Patterns |
پشتیبانی از XPath, XQuery, XSLT و XML Schema |
ابزار های کیوت Qt
Qt به همراه مجموعه ابزار های مخصوص به خودش عرضه می شود تا فرآیند توسعه نرم افزار ها برای چند پلتفرم را آسان تر کند در غیر این صورت به دلیل وجود دسته ابزار های مختلف برای توسعه نرم افزار فرآیند کار بسیار سنگین می شود. Qt Creator یک IDE چند پلتفرمی برای C++ و QML به شمار می رود. قابلیت طراحی رابط کاربری گرافیکی Qt Designer به این IDE افزوده شده است البته Qt Designer را می توان همچنان به عنوان یک ابزار مجزا استفاده کرد.
علاوه بر Qt Creator، Qt ابزار qmake را نیز ارائه می کند که یک ابزار تولید کد برای نسخه های مختلف نرم افزار و به صورت چند پلتفرمی می باشد. این ابزار تولید Makefile ها برای توسعه نرم افزار ها بر روی پلتفرم های متفاوت را به صورت خودکار انجام می دهد. بدون چنین ابزاری، باید برای هر پلتفرم یک Makefile جداگانه نوشته شود پس این ابزار برای کاهش تفاوت های بین پلتفرم های مختلف بسیار مفید است.
ابزار های دیگری نیز در Qt در دسترس هستند که می توان به Qt Designer interface builder و Qt Assistant help browser( که هر دو در Qt Creator قرار گرفته اند)، ابزار ترجمه Qt Linguist، uic( کامپایلر رابط کاربری) و moc( کامپایلر Meta-object) اشاره کرد.
اتصالات زبان برنامه نویسی
Qt دارای اتصالات مختلفی برای زبان های مختلف می باشد که همه یا برخی از مجموعه ویژگی های آن را به اجرا در می آورند.
تاریخچه کیوت Qt
توسعه اولیه کیوت Qt
در تابستان 1990، Haavard Nord و Eirik Chambe-Eng( توسعه دهندگان اولیه Qt و در حال حاضر به ترتیب مدیر اجرایی و رئیس شرکت Trolltech) با همدیگر بر روی یک نرم افزار بانک اطلاعاتی برای تصاویر سونوگرافی به زبان C++ کار می کردند که بر روی Mac OS ، Unix و ویندوز اجرا می شد. آن ها توسعه Qt را در سال 1991 شروع کردند یعنی سه سال قبل از این که شرکتشان با نام Quasar Technologies به ثبت برسد، سپس در ادامه راه این شرکت ابتدا نام خود را به Troll Tech و در نهایت به Trolltech تغییر داد.
دلیل نام گذاری این ابزار به نام Qt این بود که حرف Q در سبک حروف ایمکس Havaard خیلی جذاب به نظر می رسید و حرف t نیز از Xt یا جعبه ابزار X الهام گرفته شده بود.
دو نسخه اولیه Qt تنها بر روی دو پلتفرم اجرا می شدند: Qt/X11 برای Unix و Qt/Windows برای ویندوز.
در 20 ماه مِی سال 1995، Troll Tech به صورت رسمی Qt 0.90 را برای X11/Linux با کد منبعی تحت پروانه Qt Free Edition عرضه کرد. این پروانه از نگاه کارشناسان با اصل کد منبع باز که توسط سازمان Open Source Initiative تعریف شده بود و همچنین با تعریف نرم افزار رایگان که توسط بنیاد Free Software ارائه شده بود سازگاری نداشت زیرا با وجود این که منبع در دسترس بود اما اجازه توزیع دوباره نسخه های تغییریافته را نمی داد. Trolltech از این پروانه تا نسخه 1.45 استفاده کرد. در حدود سال 1998 بود که این قضیه جنجال آفرین شد زیرا در آن زمان مشخص شد که K Desktop Environment قرار است به یکی از برترین محیط های دسکتاپ برای لینوکس تبدیل شود. با توجه به این که محیط بر پایه Qt طراحی شده بود بسیاری از افراد در جنبش نرم افزار آزاد نگران بودند که یکی از بخش های ضروری یکی از سیستم های عامل اصلیشان به صورت اختصاصی باشد.
تبدیل به حامی جنبش نرم افزار آزاد
با عرضه نسخه 2.0 این مجموعه ابزار، پروانه آن به پروانه عمومی Q( QPL) تغییر یافت که یک پروانه نرم افار های رایگان به شمار می رفت اما از نظر بنیاد Free Software با GPL ناسازگار بود. در این زمینه KDE و Troll Tech به دنبال یافتن توافقی بودند که در اثر آن حتی اگرTrolltech خریداری شد یا به طور کامل ورشکسته شد Qt نتواند تحت پروانه ای محدود کننده تر از QPL قرار بگیرد. این توافق به ایجاد بنیاد KDE Free Qt انجامید که تضمین می کرد اگر هیچ نسخه منبع باز یا رایگانی در 12 ماه آینده عرضه نشد Qt تحت پروانه ای شبیه به پروانه های BSD قرار بگیرد.
در سال 2000، Qt/X11 2.2 تحت پروانه GPL v2 عرضه شد و به همه جنجال ها در مورد سازگاری با GPL پایان داد.
در انتهای سال 2001، Trolltech نسخه Qt 3.0 را عرضه کرد که قابلیت پشتیبانی از Mac OS X را اضافه می کرد. پشتیبانی از Mac OS X تا ژوئن سال 2003 تنها در پروانه اختصاصی امکان پذیر بود. در این زمان Trolltech نسخه Qt 3.2 را عرضه کرد که در آن پشتیبانی از Mac OS X تحت پروانه GPL فراهم شده بود.
در سال 2002، اعضای پروژه KDE on Cygwin، شروع به پورت کردن کد اصلی Qt/X11(تحت پروانه GPL ) به ویندوز کردند. این کار در واقع پاسخی بود به اقدام Trolltech که از تحت پروانه GPL قرار دادن Qt/Windows خودداری کرده بود. استدلال این شرکت آن بودکه خود ویندوز نیز یک پلتفرم نرم افزاری رایگان/ کد منبع باز نیست. این پروژه موفقیت های قابل قبولی به دست آورد البته هیچ گاه به کیفیت لازم برای تولید نرسید.
این مشکل نیز زمانی که Trolltech در ژوئن 2005، Qt 4.0 را برای ویندوز نیز تحت پروانه GPL عرضه کرد حل شد. Qt 4در نسخه کد منبع باز از همان پلتفرم هایی پشتیابنی می کرد که در نسخه اختصاصی نیز وجود داشتند. در نتیجه این امکان وجود دارد تا با استفاده از Qt 4.0 و بالاتر ، نرم افزار های کاربردی منبع باز را تحت پروانه GPL بر روی پلتفرم های مختلف طراحی کرد. در ادامه GPL v3 با استثنایی خاص، به عنوان گزینه ای دیگر در انتخاب پروانه اضافه شد. این استثنای GPL این اجازه را می دهد تا برنامه کاربردی نهایی تحت چند پروانه کد منبع باز که با GPL ناسازگار هستند ( مانند Mozilla Public License 1.1) قرار بگیرد.
خرید توسط نوکیا
در 17 ژوئن 2008، نوکیا Trolltech را خریداری کرد و در ابتدا نام آن را به Qt Software و در ادامه به Qt Development Frameworks تغییر داد. از آن زمان به بعد این شرکت بر روی توسعه Qt متمرکز شد تا آن را به پلتفرم اصلی توسعه برای دستگاه های خود تبدیل کند. از جمله کار های انجام گرفته پورت کردن بر روی پلتفرم Symbian S60 بود. نسخه 1 از Nokia Qt SDK در 23 ژوئن 2010 عرضه شد. کد منبع ، از طریق Gitorious( که یک جامعه کاربر محور برای ذخیره کد منبع های git می باشد) در دسترس قرار داد تا بتواند جامعه ی وسیع تری از کاربران را جذب کند که نه تنها از Qtاستفاده می کنند بلکه به پیشرفت آن نیز کمک می کنند.
در 14 ژانویه 2009 ، Qt version 4.5 قابلیت دیگری را به نام LGPL اضافه کرد که باعث می شود Qt برای پروژه های کد منبع باز غیر GPL و یا برای نرم افزار های کاربردی بسته بسیار جذاب تر شود.
در فوریه 2011، نوکیا تصمیم خود برای رها کردن تکنولوژی سیمبین و استفاده از پلتفرم ویندوز فون برای گوشی های هوشمند آتی خود را اعلام کرد . یک ماه بعد، نوکیا فروش پروانه تجاری Qt و خدمات حرفه ای آن به Digia را اعلام کرد و هدف اصلی خود را از این کار، انتقال پشتیبانی از Qt بر روی پلتفرم های Android,iOS و Windows 8 و ادامه تمرکز خود بر روی توسعه دسکتاپ عنوان کرد البته در آن زمان قرار بود تا نوکیا به عنوان نیروی اصلی توسعه این چارچوب باقی بماند.
ادغام و جدا شدن از Digia
در مارس 2011، نوکیا بخش پروانه تجاری Qt را به Digia فروخت که منجر به ایجاد Qt Commercial شد. در آگوست 2012، Digia اعلام کرد که قرار است Qt را از نوکیا بخرد. تیم Qt شرکت Digia کار خود را در سپتامبر 2012 شروع کرد. آن ها Qt 5.0 را ظرف یک ماه، و در ادامه هر شش ماه یک نسخه جدید با ویژگی های جدید و پلتفرم های های پشتیبانی شده بیشتر عرضه کردند.
در سپتامبر 2014، Digia تجارت و حق نشر Qt را شرکت The Qt Company که یک شرکت فرعی متعلق به خودش بود منتقل کرد. این شرکت صاحب 25 برند مربوط به Qt است. در ماه مِی 2016، Digia و Qt از یکدیگر جدا شده و به دو شرکت کاملا مستقل تبدیل شدند.
پروژه Qt کیوت و Open Governance
Qt 5 به طور رسمی در 19 دسامبر 2012 به بازار عرضه شد. این نسخه جدید یک تغییر اساسی را در این پلتفرم ایجاد کرد زیرا در آن تصاویر به صورت سخت افزار تسریع کننده شکل می گیرند و QML و Javascript نقشی کلیدی بازی می کنند. حالت سنتی Qwidget هایی که تنها از C++ پشتیبانی می کرد باز هم پشتیبانی می شد اما از بهبود عملکرد هایی که از طریق معماری جدید به دست آمده بود بهره نمی برد. Qt 5 پیشرفت های چشمگیری را در زمینه سرعت و آسانی توسعه رابط های کاربری نشان داده است.
توسعه چارچوب Qt 5 به حالت حاکمیت آزاد تغییرکرده و در سایت qt-project.org صورت می گیرد. در این سایت برای توسعه دهندگان غیر شاغل در Digia نیز این امکان وجود دارد تا پچ های خود را ثبت کنند تا مورد بررسی قرار بگیرند.
1 Comment
با تشکر از مطالب مفید و کاربردیتون