يقوم Qt 6.10 بتحديث تطوير الأنظمة الأساسية المتعددة من خلال تحسين إمكانية الوصول والبيانات المتكاملة والرسوم المتحركة المتجهة.

  • تم تحسين إمكانية الوصول والتباين العالي المدمج في أنماط Qt
  • واجهة مستخدم أسرع: FlexboxLayout، ورسوم متحركة SVG/Lottie، وSearchField
  • بيانات أبسط: QRangeModel، وSynchronizer، وTreeModel، والفرز/المرشحات في QML
  • المنصات المحدثة: Android 15/16، macOS/iOS 26، WebView2 وPipeWire

كيو تي 6.10

كيو تي 6.10 وصول يحتوي على تحسينات لمطوري التطبيقات ومنشئي الأجهزة، مع ميزات جديدة تتراوح من إمكانية الوصول وتصميم الواجهة إلى الصوت والرسومات ودعم المنصة. إنها نسخة تجعل الحياة اليومية أسهل سواء كنت تعمل في QML وQt Quick أو تستمر في استخدام C++ وQt Widgets.

وبعيدًا عن العناوين الرئيسية، هناك تغييرات تؤثر بشكل مباشر على الإنتاجية: نظام تخطيط يشبه flexbox في Qt Quick، ورسوم متحركة متجهية موسعة (SVG وLottie)، وعناصر تحكم جديدة مثل SearchField، وطرق أكثر وضوحًا لتوصيل بيانات C++ بواجهات QML. هناك أيضًا تطورات في Android وmacOS/iOS وWindows وLinux، وعدد كبير من التفاصيل الصغيرة الرائعة في وحدات مثل Qt Graphs، أو Qt Quick 3D، أو Qt Multimedia، أو Qt Core.

إمكانية الوصول والتباين العالي في Qt 6.10

تتقدم إمكانية الوصول خطوة كبيرة: تحترم أنماط Qt المضمنة الآن يضبط إعدادات التباين العالي للنظام تلقائيًا على أجهزة الكمبيوتر والهواتف المحمولة. يساعد هذا على الحفاظ على تناسق الصورة مع بقية البيئة، والامتثال للوائح دون أي جهد إضافي.

تمت مراجعة الطريقة التي يتم بها عرض عناصر التحكم Qt وQt Quick على التقنيات المساعدة (على سبيل المثال، برامج قراءة الشاشة)، مع تكامل أفضل مع المنصات الأساسيةويعتبر التقدم ملحوظًا بشكل خاص في WebAssembly، وسيتم أيضًا طرح العديد من هذه التحسينات في فروع LTS في تحديثات الصيانة القادمة.

Qt 6.10 يبني الواجهات بشكل أسرع

تستمر Qt Quick في التطور لتكرار التكرارات بشكل أسرع وتقليل التعليمات البرمجية المخصصة وتحقيق واجهات مستخدم حديثة ومستجيبة. 6.10 يطلق تخطيط Flexbox الجديدتم توسيع دعم الرسوم المتحركة المتجهة، ويظهر عنصر التحكم SearchField الجاهز للاستخدام.

تخطيط Flexbox لـ Qt Quick

تم دمج FlexboxLayout باعتباره "معاينة تقنية"، وهو نظام مستوحى من Flexible Box Layout الخاص بـ CSS والذي يتكامل مع آلية تخطيط Qt Quick (بما في ذلك الخصائص المرفقة لـ تكوين سلوك كل عنصرتم تصميمه لإنشاء واجهات سريعة الاستجابة في دقائق والحفاظ على أداء قوي في وقت التشغيل.

لقد قدمت Qt بالفعل العديد من التخطيطات للواجهات التكيفية، ولكن مع FlexboxLayout أصبح من الأسهل استيعاب أحجام/جوانب الشاشة المختلفة و التخفيف من اختلافات طول النص بسبب التدويل أو تفضيلات الطباعة.

رسومات المتجهات المتحركة: SVG وLottie

بعد عدة إصدارات تعزز دعم الرسومات المتجهة (Qt Quick Scene Graph وQt Quick Shapes وتحسين SVG)، في 6.10 تمت إضافته دعم الرسوم المتحركة المتجهة في كلٍّ من صور SVG وLottie. تُوسِّع وحدة Qt Lottie نطاق الملفات الحديثة المدعومة، وبفضل VectorImage، يُمكن عرض Lottie كمتجه قابل للتطوير ومُعجَّل بالأجهزة.

بالإضافة إلى ذلك، تم دمج أداة lottietoqml لتحويل ملفات Lottie إلى مشاهد سريعة من Qt مباشرة في QML، مكملاً التدفق الذي افتتحه svgtoqml.

عنصر التحكم السريع الجديد في Qt: حقل البحث

حقل البحث هو حقل إدخال متخصص لعمليات البحث، مع أنماط مدمجة و المظهر الأصلي على المنصات الرئيسيةإنه يعرض اقتراحات ذات صلة في قائمة منسدلة مفلترة أثناء الكتابة، ويتم تشغيله بواسطة نماذج يمكنك توفيرها عبر مسارات بيانات QML القياسية.

تتناسب هذه القطعة بشكل جيد بشكل خاص مع التحسينات في تبادل البيانات بين كود C++ وواجهات المستخدم السريعة لـ Qt: الميزة الجديدة في 6.10 تجعل أسهل في توصيل نماذج C++ مع عناصر تحكم مثل SearchField دون اللجوء إلى قوالب مطولة.

دمج بياناتك في QML مع احتكاك أقل بفضل Qt 6.10

يوفر Qt آليات متعددة لربط منطق C++ مع عرض QML (العناصر المنفردة، وQAbstractItemModel، وخصائص السياق، وكائنات QObject، وما إلى ذلك)، وأدوات مثل كيو تي الخالق 8ومع ذلك، فإن بناء التكامل الكامل ثنائي الاتجاه قد يتطلب الكثير من التعليمات البرمجية المتكررةفي Qt 6.10 تم تخفيض هذا الحاجز باستخدام واجهات برمجة التطبيقات الجديدة والأنواع المصممة للعمل الحقيقي.

نموذج نطاق الاستجابة السريعة

يصل QRangeModel، وهو تنفيذ خفيف الوزن لـ QAbstractItemModel لعرض نطاقات C++ كـ std::vector أو std::array أو أي حاوية قابلة للتكرار مباشرةً إلى العروض في عناصر واجهة المستخدم وعروض QML/Qt السريعة. يعمل مع قيم بسيطة (مثل int) وأنواع أكثر تعقيدًا (Q_GADGET أو std::tuple)، مما يُولّد أدوارًا مناسبة دون الحاجة إلى كتابة النموذج يدويًا.

إذا كنت تستخدم أدوات، يعرض QRangeModel كل خاصية كدور مسمى، بحيث يمكن لمندوبي QML رابط مع الخصائص المطلوبة بطريقة مكتوبة. عمليًا، تُلغي الحاجة إلى إدارة الأدوار يدويًا أو إساءة استخدام خصائص السياق، ويتوافق كل شيء مع لغة QML المُجمّعة.

delegateModelAccess: الكتابة المباشرة من المندوب

حتى الآن، للكتابة إلى النموذج من مندوب، كنتَ تحتاج عادةً إلى كائن النموذج أو خصائص السياق. مع الإصدار 6.10، ما عليك سوى تفعيل delegateModelAccess في وضع القراءة والكتابة حتى يتمكن المندوبون من الكتابة من خلال الخصائص المطلوبة بشكل طبيعي.

تعمل الإمكانية الجديدة على جميع عروض Qt: Instantiator، وRepeater، وListView، وGridView، وTableView، وTreeView، وMapItemView، وRepeater3D. إنشاء واجهات مستخدم قابلة للتعديل وهذا يجعلها أكثر قابلية للتنبؤ ومتوافقة مع ممارسات QML الجيدة.

المزامن: مزامنة خصائص متعددة

تم طلب عنصر Synchronizer بشدة لسنوات عديدة، وتم إطلاقه لضمان ذلك تشترك عدة خصائص في نفس القيمة كلما أمكن، دون قطع أي روابط في أيٍّ منهما. كان يتم دمج الروابط سابقًا مع معالج إشارة، وكان هذا أنسب لعناصر التحكم المُنفَّذة بلغة C++.

مع Synchronizer يتم تقليص كل شيء إلى عنصر واحد يدعم n خصائص وأهداف C++ وQML. متوفر في وحدة Qt.labs.synchronizer، ويصل كمعاينة تقنية.

TreeModel في QML

كان عرض بيانات الشجرة على Qt Quick يتضمن تنفيذ QAbstractItemModel. يُبسط QRangeModel هذا من C++، ولكن في بعض الأحيان قد ترغب في إعلان الشجرة مباشرة في QML للنماذج الأولية أو مجموعات البيانات الصغيرة. وهنا يأتي دور نوع QML TreeModel.

باستخدام TreeModel، يمكنك تعريف العقد باستخدام مصفوفة على غرار JSON وقواعد نحوية للقاموس، وتعيين أزواج القيمة الرئيسية لكل عنصر، واستخدامها في العروض مثل TreeView دون كتابة بنية تحتية معقدة. يسمح لك بتكرار واجهة المستخدم بسرعة عالية قبل نقل الهيكل إلى C++ إذا كنت بحاجة إلى ذلك.

SortFilterProxyModel في QML

من ناحية C++، نستخدم QSortFilterProxyModel منذ سنوات. يُضيف Qt 6.10 نظيره التصريحي إلى QML لـ فرز وتصفية البيانات مع واجهة برمجة تطبيقات سهلة الربط. تتضمن أدوات فرز قائمة على الأدوار (مثل RoleSorter) ومرشحات دالة تفاعلية (يمكنك تجاوزها) للحفاظ على تحديث القوائم والجداول.

الفكرة هي أنه يمكنك إنشاء خطوط أنابيب الفرز والتصفية مباشرة في QML، مع كود موجز ومعبّر، دون التضحية بالأداء أو الوضوح.

حافظ على منتجك حديثًا مع Qt 6.10

تتطور الأنظمة، ويتوقع المستخدمون أن تعمل تطبيقاتهم على أحدث الأجهزة والإصدارات. في الإصدار 6.10، هناك تحسينات مثيرة للمنصة التي تسهل هذا الاستمرارية، كما هو موضح في المشاريع المشتقة من Qt مثل LXQt 2.0.

Android: الدعم الحالي والأدوات الجديدة

يُعلن Qt 6.10 رسميًا عن دعمه لنظامي أندرويد 15 و16، مع تعديلات على نظام البناء ودعم لصفحات بحجم 16 كيلوبايت. يتيح لك هذا الأجهزة الحالية المستهدفة دون أي مفاجآت، مع الحفاظ على الاستقرار والأداء.

تم إطلاق Qt Jenny 1.0، وهو مُولّد أكواد يُولّد مُكوّنات JNI من فئات Java المُعلّقة. يتكون من مُجمّع ومعالج تعليقات، يُولّد واجهات برمجة تطبيقات Qt C++ استنادًا إلى QJniObject للوصول إلى خدمات أصلية مثل BatteryManager وPowerManager وAudioManager. حتى أنه يبسط الإشعارات، والتي غالبًا ما تكون معقدة عبر واجهة برمجة التطبيقات (JNI). تتوفر هذه الأداة على Maven Central، وتأتي مع أمثلة في Qt Creator ووثائق عبر الإنترنت.

كما تم تحسين التعامل مع شاشة البداية منذ Android 12، مما أدى إلى تجنب شاشات ترحيب مزدوجةالنهج الموصى به هو استخدام SplashActivity مخصص، وتعيين السمات بالشفافية، وتشغيل Qt Activity عندما يكون Android جاهزًا، لتحقيق انتقال سلس.

macOS وiOS 26

أول إصدار ثانوي منذ إصدار macOS 26 "Tahoe". شكّل تصميم Liquid Glass الجديد والتغييرات في بنية العرض تحدياتٍ حلّها Qt. تقديم الدعم الكاملسيتم نقل العديد من التحسينات إلى فروع LTS (6.8 و6.5) في التصحيحات القادمة.

Windows: Qt WebView مع WebView2

يتضمن Qt WebView تطبيقًا قائمًا على WebView2 لاستخدام Microsoft Edge كمحرك. بهذه الطريقة، يمكنك تضمين محتوى الويب باستخدام متصفح النظام الأصلي ونشره على نظام Windows دون سحب Qt WebEngine، مما يخفف من حجم المساحة.

لينكس والوسائط المتعددة

تضيف Qt Multimedia واجهة خلفية أصلية لـ PipeWire، مع تحسين زمن الوصول والتحكم في معالجة المحتوى والأجهزة (على سبيل المثال، التطبيقات مثل Mixxx 2.5)، بالإضافة إلى دعم أقل في البيئات الحاويةتمت إضافة تعويض درجة الصوت للحفاظ على الجودة عند تسريع المسارات أو إبطائها.

الأجهزة المضمنة

على الأجهزة، يعتمد Boot to Qt على Yocto 5.2 "Walnascar" ويظهر التكيفات لصفائح النيتروجين في إيزوريوالهدف: تسريع وقت طرح المنتجات في السوق على الأجهزة الحديثة، مع تحديث المجموعات.

تحسينات ملحوظة أخرى في Qt 6.10

يسمح Qt Quick 3D الآن اخبز خرائط الإضاءة بسهولة لتحسين الجودة مع الأداء العالي، وتشغيل تأثيرات الجسيمات في الاتجاه المعاكس، وهو أمر مفيد لمحاكاة تأثير المطر أو الثلج على نماذجك.

يضيف Qt Graphs سطحًا جديدًا ممتلئًا، ودعمًا أفضل للمحاور المتعددة، وترتيب z ثنائي الأبعاد قابل للتخصيص، والخيار لـ تقديم شريحة من رسم بياني ثلاثي الأبعاد صورة قابلة للطباعة. كما أُضيفت صورة جديدة بسطح مُعبأ إلى الكتالوج.

في Qt Widgets، قم بإنشاء مندوبي مخصصين إنه أسهل، ويتميّز بتحكم أكثر دقة في السحب والإفلات لعرض العناصر. تتيح لك التخطيطات ضبط قيود الحجم بشكل فردي.

تتضمن لوحة المفاتيح الافتراضية الآن التوزيع اللاتفيتوسيع نطاق اللغات. وفي Qt Core، تم تحسين واجهات برمجة التطبيقات للعمل مع الإعدادات المحلية، ومستندات XML، وسلاسل الاستمرارية.

في واجهة المستخدم الرسومية لـ Qt، يضيف برنامج QRhi الخلفي تعداد محولات ثلاثية الأبعاد عند استخدام Direct3D 11/12 أو Vulkan، يصبح من الأسهل اختيار وحدات معالجة الرسومات على الأجهزة متعددة البطاقات.

قدم تحسينات في الأداء في QGrpcHttp2Channel، مما يفيد التطبيقات التي تستخدم gRPC عبر HTTP/2 في السيناريوهات الصعبة.

المزيد عن Qt 6.10

وايلاند يستقبل إدارة الجلسة، وهو مكون رئيسي للتكاملات المكتبية الحديثة، وتمت إضافة إشعارات إعادة تعيين رسومية مفيدة للمكونات مثل الملحنين (على سبيل المثال، KWin).

يتضمن Qt WebEngine دعمًا لـ ملحقات كروميوم، وهو مطلبٌ قائمٌ منذ زمنٍ طويلٍ من مستخدمي متصفحات QtWebEngine. هذا يفتح البابَ أمام مشاريعٍ مثل Falkon لاستخدام نفس نظام الإضافات الذي تستخدمه بالفعل في Chromium.

بالإضافة إلى الدعم المباشر لـ Lottie في VectorImage، فإن الأداة lottietoqml يبسط أضف الرسوم المتحركة إلى عالم QML، مما يؤدي إلى توسيع ترسانتك الإبداعية دون التضحية بالأداء.

يعد Qt 6.10 خطوة مهمة نحو تطوير واجهات أكثر سهولة في الوصول إليها وأكثر حداثة، ودمج بيانات C++ في QML مع احتكاك أقل، والنشر بسلاسة على أحدث المنصات - كل ذلك مع إضافة الوسائط المتعددة والرسومات والميزات الأساسية العملية التي تنعكس في كل من الأداء وجودة المنتج النهائي. إذا كان لديك Qt في المكدس الخاص بكيستحق هذا التحديث أن يكون له مكان على خريطة الطريق الخاصة بك.

كيو تي -6
المادة ذات الصلة:
تم بالفعل إصدار Qt 6.6 وهذه هي أخبارها