إطار عمل كيو تي
QT تلفظ بشكل رسمي كيوت cute (/kyut/) على الرغم ان اللفظ الشائع هو Q.T (/ˈkyu ti/) ان QT هي منصة عمل لتطوير البرمجيات التاي تعمل على عدة انظمة تشغيل تستعمل غالباً من اجل تطوير برامج ذات واجهة بيانيةGUI وغير البيانية كconsole و مخدم . QT تستعمل بشركة ملحوظ في برامج autodisk,google earth ,KDE ,Adobe Photoshop album , وكالة الفضاء الاوروبيةOPIE, Skype, VLC media player, Samsung , Philips , Panasonic ,VirtualBox
تم انتاج هذه المكتبة من شركة نوكيا Nokia من بعد هيمنتها على شركة Trolltech النروجية المنتج الفعلي لمكتبة QT في العام 2008 .
QT تستعمل لغة c++ القياسية لكنها تستعمل بعض التوسعات الإضافية على pre-processor هذه توسعات تدعى Meta Object Compiler, او اختصاراً moc وتم العمل عليها لإغناء اللغة .QT يمكنها ايضاً ان تستعمل في لغات برمجة اخرى بواسطة language bindings .تعمل المنصة على جميع منصات العمل الرئيسية وتملك دعم دولي واسع . ان ميزات البرمجة التي لا تملك واجهة بيانية تتضمن SQL database access, XML parsing, thread management, network support, ومنصة عمل موحدة للتعامل مع الملفات
QT هي مكتبة برمجية مجانية ومفتوحة المصدر تحت رخصة GPL .جميع الاصدارات تدعم العديد من المترجمات compilers بما فيها GCC c++ وحزمة visual studio .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
تاريخ المنصة
المطوران الرئيسيان لمنصة QT هما Haavard Nord و Eirik Chambe-Eng والذين يعملان حالياً كمدراء تنفيذيين CEO في شركة Trolltech بدءا العمل بتطوير المنصة في العام 1991 , قبل ثلاث سنوات قبل ان ان يتم دمج الشركة مع Quasar Technologies ليصبح اسم الشركة Troll Tech فيما بعد .
الادوات البرمجية toolkit سميت QT بسبب ان الحرف Q بدا جذاباً في خط Haavard's Emacs والحرف t تم استيحاءه من قبل ادوات Xt .
اول اصدارين من المنصة كانت تملك توزيعتين Qt/X11 المخصصة لنظام Unix و Qt/Windows لنظام تشغيل Windows .ان منصة تشغيل ويندوز كانت تدعم الرخصة المملوكة لا الحرة ,الامر الذي ادى الى ان جميع التطبيقات مفتوحة المصدر المكتوبة بمكتبة QT من اجل X11 لا يمكن توزيعها الى نظام ويندوز بدون شراء النسخة المملوكة .في نهاية العام 2001 اصدرت شركة Trolltech النسخة الثالثة من QT , التي قامت باضافة الدعم لنظام تشغيل Mac Os X . ان دعم نظام تشغيل Mac كان متوافراً فقط في النسخة المملوكة حتى العام 2003 عندما اصدرت الشركةTrolltech الاصدار 3.2 مع دعم نظام Mac تحت رخصة GPL .
نوكيا قام بالاستحواذ على شركة Trolltech في العام 2008 وقام بتغير اسم المنصة الى Qt Software ثم Qt Development Frameworks منذ ذلك الحين وعملت شركة نوكيا على تطوير QT لتعمل على اجهزتها , بالإضافة الى تطوير العمل على نظام تشغيل Symbian S60 . الإصدار رقم 1 من شركة نوكيا Nokia Qt SDK تم اصداره في 23 -6- 2010
المنصات Platforms
تم اصدار منصات QT من قبل نوكيا التالية :
- Linux/X11 – Qt for X Window System (Unix / Linux)
- Mac OS X – Qt for Apple Mac OS X. Support for applications on top of Cocoa APIs
- Windows – Qt for Microsoft Windows
- Embedded Linux – Qt for embedded platforms (PDA, Smartphone, etc.)
- Windows CE – Qt for Windows CE
- Symbian – Qt for the Symbian platform.Qt is to replace Nokia's Avkon as the supported UI SDK for the development of Symbian applications.
- Maemo – Qt for Maemo, merged with Moblin to MeeGo
توزيعات
ان مكتبة QT تملك العديد من التوزيعات المختلفة والجدول التالي يوضح اهم التوزيعات ولغات البرمجة المتوافقة معها .
لغة | اسم - موزع النسخة | QtCore | QtDesigner | QtGui | QtNetwork | QtOpenGL | QtSql | QtScript | QtSvg | QtTest | QtUiTools | QtWebKit | QtXml | رخصة برمجيات للتطبيقات مفتوحة المصدر | رخصة برمجيات للتطبيقات المملوكة |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ada | QtAda | نعم | نعم | نعم | لا ,تدعم Qt modules في QtAda | نعم | نعم | لا | لا | لا | نعم | لا | نعم | GPL-رخصة | GMGPL + اجرة بسيطة |
C++ | Qt – native C++ | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | LGPL | LGPL او مملوكة + اجرة بسيطة |
C# & .NET | Qyoto – شاهد ايضاً Kimoلا KDE | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | ||
C# & .NET | qt4dotnet | LGPL | LGPL | ||||||||||||
D | QtD | ||||||||||||||
Haskell | Qt Haskell | ||||||||||||||
Harbour | hbqt | نعم | لا | نعم | لا | لا | لا | لا | لا | لا | لا | لا | رخصة GPL | LGPL مثل | |
Java | Qt Jambi | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | LGPL | LGPL |
Lisp | CommonQt – نسخة مخصصة ل Common Lisp | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | BSD License | BSD License |
Lua | lqt - Bindings | نعم | لا,تدعم Qt modules في QtAda | نعم | نعم | نعم | لا | نعم | نعم | لا | لا | نعم | لا | MIT | MIT |
Lua | QtLua - script engine | LGPL | LGPL | ||||||||||||
Pascal | FreePascal Qt4 | ||||||||||||||
Perl | PerlQt4 | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | رخصة GPL | لا |
PHP | PHP-Qt | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | LGPL | LGPL |
Python | PyQt – تملك نص مرافق (ISBN 0132354187). | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | رخصة GPL | خاص + اجرة بسيطة |
Python | PySide – from OpenBossa (a subsidiary of لاkia). | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | LGPL | LGPL | ||
Python | PythonQt | LGPL | LGPL | ||||||||||||
R | qtbase | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | GPL | لا |
Ruby | QtRuby | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | نعم | LGPL | LGPL |
Tcl | qtcl | رخصة GPL | لا |
Qt hello world
#include <QtGui> int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel label("Hello, world!"); label.show(); return app.exec(); }
ترجمة وتنفيذ برنامج Qt hello world
- يتم انشاء مجلد باسم hello
- نسخ ولصق البرنامج السابق ذو اللاحقة cpp في مجلد hello
- في مجلد hello يتم تنفيذ التعليمات التالية
- qmake -project
- qmake
- make/gmake/nmake
- Execute ./release/Hello او release\Hello.exe في نظام ويندوز
روابط خارجية
- Qt الصفحة الرئيسية
- Qt مدونة
- Qt مختبر
- توثيق المراجع اونلاين
- Planet Qt
- Qt Centre
- تطبيقات QT مجانية
- طاقم تطوير QT
- C++ GUI Programming with Qt 4/first edition. الكتاب الكامل (pdf) ,مناسب من اجل الذين يملكون خبرة في برمجة c++ لكن لا يملكون خبرة ببرمجة واجهات بيانية GUI
- An Introduction to Design Patterns in C++ with Qt4. The full book from a Prentice Hall edition teaching C++ programming from the ground up, using Qt 4.1
- Qt مقارنة مع Java
- Qtitan - Nokia-Qt Third-Party Widgets & Components