أصدرت شركة Qt إطار عمل Qt 6.4، الذي يواصل العمل على استقرار وتوسيع وظائف فرع Qt 6. يوفر Qt 6.4 دعمًا للمنصات Windows 10+, macOS 10.15 + Linux (Ubuntu 20.04 CentOS 8.2، openSUSE 15.3، SUSE 15 SP2)، iOS 14+، Android يدعم Qt الإصدارات 6+ (API 23+)، وwebOS، وWebAssembly، وINTEGRITY، وQNX. يخضع الكود المصدري لمكونات Qt لترخيص LGPLv3 وGPLv2.
التغييرات الرئيسية في كيو تي 6.4:
- تم تنفيذ الدعم الكامل لمنصة WebAssembly، مما يسمح لك بإنشاء تطبيقات Qt تعمل في متصفح الويب ويمكن نقلها بين منصات الأجهزة المختلفة. يتم تشغيل التطبيقات المصممة لمنصة WebAssembly بأداء قريب من الكود الأصلي بفضل نسخ JIT، ويمكنها استخدام Qt Quick، وQt Quick 3D، وأدوات التصور المتوفرة في Qt. نظرًا لأن التطبيق المستند إلى WebAssembly يعمل في بيئة متصفح معزولة، فإن الوصول إلى بعض واجهات برمجة التطبيقات للعمل مع الموارد المحلية وخدمات نظام التشغيل يكون محدودًا، ولكن يتم توفير واجهات برمجة تطبيقات إضافية للتكامل مع المتصفح.
- تمت إعادة وحدة Qt TextToSpeech، التي كانت مُضمنة في Qt 5 ولكنها لم تكن مُضمنة في فرع Qt 6، إلى الحزمة الأساسية. توفر هذه الوحدة أدوات لتوليف الكلام، والتي يمكن استخدامها لتحسين إمكانية الوصول إلى التطبيقات للأشخاص ذوي الإعاقة أو لتنفيذ وسائل جديدة لعرض معلومات المستخدم في الخلفية، على سبيل المثال، لعرض الإشعارات في تطبيقات أنظمة المعلومات والترفيه في السيارات. Linux يتم إجراء تحويل النص إلى كلام باستخدام مكتبة Speech Dispatcher (libspeechd)، وعلى منصات أخرى من خلال واجهة برمجة التطبيقات القياسية لنظام التشغيل.
- تمت إضافة وحدة تجريبية تُطبّق أنماط iOS لـ Qt Quick. يمكن للتطبيقات المبنية على عناصر تحكم Qt Quick استخدام هذه الوحدة تلقائيًا لإنشاء أنماط واجهة أصلية على منصة iOS، على غرار كيفية تطبيق الأنماط الأصلية في Windows, macOS и Android.


- تمت إضافة وحدة QtHttpServer التجريبية، مما يسمح بدمج وظيفة خادم HTTP في التطبيقات، والتي تدعم HTTP/1.1، وTLS/HTTPS، وWebSockets، ومعالجة الأخطاء، وتوجيه الطلب استنادًا إلى معلمات URL (QHttpServerRouter) وREST API.
- أُضيفت وحدة Qt Quick 3D Physics تجريبية، تُوفر واجهة برمجة تطبيقات لمحاكاة العمليات الفيزيائية، ويمكن استخدامها مع Qt Quick 3D للتفاعل مع الكائنات وتحريكها بشكل واقعي في المشاهد ثلاثية الأبعاد. يعتمد التنفيذ على محرك PhysX.
- تم تحديث وحدة Qt Quick 3D لتشمل الدعم التجريبي للإضاءة العالمية باستخدام خرائط الإشعاع، مما يسمح بمحاكاة أكثر واقعية للضوء من مصادر مختلفة في مشهد ثلاثي الأبعاد. يتضمن Qt Quick 3D أيضًا دعمًا للجسيمات الخطية والمواد اللامعة وإعدادات الانعكاس المتقدمة وصناديق السماء والمواد والقوام المخصصة.

- تم توسيع قدرات أنواع TableView وTreeView التي يوفرها Qt Quick لتشمل دعم التنقل باستخدام لوحة المفاتيح، واختيار الصفوف والأعمدة، والتحكم الأكثر اكتمالاً في موضع الخلية، والرسوم المتحركة، وانهيار وتوسيع هياكل الشجرة.
- يُقدّم Qt Quick نوعًا جديدًا من FrameAnimation يسمح بتنفيذ الكود بالتزامن مع إطارات الرسوم المتحركة. ولتحسين سلاسة الرسوم المتحركة، يُتيح Qt Quick أيضًا معالجةً تلقائيةً لمزامنة vsync غير الصحيحة أثناء العرض متعدد الخيوط.

- تتمتع أداة QQuickWidget، التي تسمح لك بإنشاء واجهات تجمع عناصر تعتمد على Qt Quick وQt Widget، بدعم كامل لطبقة RHI (واجهة أجهزة العرض)، مما يسمح لك بالعمل ليس فقط مع OpenGL، ولكن أيضًا فوق واجهات برمجة التطبيقات Vulkan وMetal وDirect 3D.
- تمت إضافة فئة QSslServer إلى وحدة Qt Network، مما يسمح لك بإنشاء شبكة فعالة الخوادم، باستخدام بروتوكول TLS لإنشاء قناة اتصال آمنة.
- أُضيفت واجهة خلفية تجريبية إلى وحدة Qt Multimedia، تستخدم حزمة FFmpeg لمعالجة الفيديو والصوت. عند تشغيل الفيديو، تم تحسين معالجة مساحات الألوان وتقنية HDR، بالإضافة إلى إمكانية استبدال الترجمات عبر QVideoFrames. كما أُضيف دعم الصوت المكاني، مما يتيح إنشاء مشاهد ذات توزيع صوتي ثلاثي الأبعاد ومحاكاة غرف افتراضية بخصائص انعكاس الصوت بناءً على موقع المستمع وحجم الغرفة ومواد الجدران والأرضية.
- في وحدة Qt Widgets، تم توسيع فئة QFormLayout بمرافق لبناء واجهات لالتقاط إدخال المستخدم المنظم. تم تحديث فئة QWizard، المصممة لإنشاء واجهات متعددة الخطوات، بواجهات برمجة التطبيقات للتحكم في رؤية الصفوف في النماذج والانتقال إلى أي صفحة في المعالج.
- لقد قام QML بتحسين الدعم لأنواع القيمة، مما يجعل من الأسهل تمرير البيانات المنظمة من C++ إلى QML. يمكن الآن استخدام مثل هذه الأنواع وقوائم هذه الأنواع في الخصائص دون غلاف قائم على QObject. تم توسيع قدرات خادم LSP لدمج دعم لغة QML في بيئات التطوير المتكاملة. يتم تمكين مُجمِّع النوع QML بشكل افتراضي، مما يسمح لك بتجميع تمثيل QML في كود C++.
- تم توسيع إمكانيات العمل مع الأحرف النصية في الكود - تمت إضافة الدعم لجميع الترميزات المتوفرة في ICU (المكونات الدولية لـ Unicode) إلى فئتي QStringEncoder و QStringDecoder.
- تدعم فئة QTextDocuments الآن ترميز Markdown.
المصدر: opennet.ru




