Slint عبارة عن مجموعة أدوات تعريفية لواجهة المستخدم الرسومية لإنشاء واجهات مستخدم أصلية للتطبيقات المضمنة وتطبيقات سطح المكتب وتطبيقات الهاتف المحمول المكتوبة بلغة Rust أو C++ أو JavaScript أو Python.
اسم Slint مشتق من أهداف التصميم لدينا:
تفضل بزيارة #MadeWithSlint لعرض بعض المشاريع باستخدام Slint. نحن ندعوك لاستخدام Slint وتكون جزءًا من مجتمعها.
Slint قيد التطوير النشط. حالة الدعم لكل منصة هي كما يلي:
يدعم Slint التنقل المعتمد على لوحة المفاتيح للعديد من الأدوات، كما أن واجهات المستخدم قابلة للتطوير. البنية التحتية الأساسية للتكنولوجيا المساعدة مثل قارئات الشاشة موجودة. نحن ندرك أن هناك حاجة إلى مزيد من العمل للحصول على أفضل دعم في فئته للمستخدمين ذوي الاحتياجات الخاصة.
RaspberryPi | STM32 | RP2040 |
---|---|---|
فيديو Slint على Raspberry Pi | فيديو Slint على STM32 | فيديو لسلينت على RP2040 |
ويندوز | ماك | لينكس |
---|---|---|
عرض الطابعة | لغز الشريحة | مراقب الطاقة | معرض القطعة | عرض الطقس |
---|---|---|---|---|
المزيد من الأمثلة والعروض التوضيحية في مجلد الأمثلة
يتم تعريف واجهة المستخدم بلغة خاصة بالمجال تكون تعريفية وسهلة الاستخدام وبديهية وتوفر طريقة قوية لوصف العناصر الرسومية وموضعها وتسلسلها الهرمي وربط الخصائص وتدفق البيانات عبر الحالات المختلفة.
إليك عبارة "Hello World" الإجبارية:
export component HelloWorld inherits Window {
width : 400px ;
height : 400px ;
Text {
y : parent .width / 2 ;
x : parent .x + 200px ;
text : "Hello, world" ;
color : blue ;
}
}
لمزيد من التفاصيل، راجع وثائق لغة Slint.
يحتوي مجلد الأمثلة على أمثلة وعروض توضيحية، توضح كيفية استخدام لغة ترميز Slint وكيفية التفاعل مع واجهة مستخدم Slint من لغات البرمجة المدعومة.
يحتوي مجلد docs
على الكثير من المعلومات، بما في ذلك تعليمات البناء ومستندات المطور الداخلية.
ارجع إلى الملف التمهيدي لكل دليل لغة في مجلد api
:
يتكون التطبيق من منطق الأعمال المكتوب بلغة Rust أو C++ أو JavaScript وعلامة تصميم واجهة المستخدم .slint
، والتي يتم تجميعها إلى تعليمات برمجية أصلية.
يتم تجميع ملفات .slint
مسبقًا. التعبيرات الموجودة في .slint
هي وظائف خالصة يمكن للمترجم تحسينها. على سبيل المثال، يمكن للمترجم اختيار الخصائص "المضمنة" وإزالة تلك الثابتة أو التي لم تتغير. نأمل في المستقبل تحسين وقت العرض على الأجهزة المنخفضة الجودة من خلال المعالجة المسبقة للصور والنصوص. يمكن للمترجم تحديد أن Text
أو عنصر Image
موجود دائمًا أعلى Image
أخرى في نفس الموقع. وبالتالي، يمكن تقديم كلا العنصرين مسبقًا في عنصر واحد، وبالتالي تقليل وقت العرض.
يستخدم المترجم مراحل المترجم النموذجية المتمثلة في lexing، والتحليل، والتحسين، وأخيرًا إنشاء التعليمات البرمجية. يوفر واجهات خلفية مختلفة لإنشاء التعليمات البرمجية في اللغة الهدف. ينتج منشئ كود C++ ملف رأس C++، وينتج منشئ Rust كود Rust، وما إلى ذلك. يتم أيضًا تضمين مترجم للغات الديناميكية.
تتكون مكتبة وقت التشغيل من محرك يدعم الخصائص المعلنة بلغة .slint
. يتم وضع المكونات مع عناصرها وعناصرها وخصائصها في منطقة ذاكرة واحدة لتقليل تخصيص الذاكرة.
يمكن تكوين الواجهات الخلفية والأنماط في وقت الترجمة:
femtovg
برنامج OpenGL ES 2.0 للعرض.skia
Skia للعرض.software
وحدة المعالجة المركزية (CPU) دون أي تبعيات إضافية. ملاحظة: عند تثبيت Qt على النظام، يصبح نمط qt
متاحًا، وذلك باستخدام QStyle الخاص بـ Qt لتحقيق عناصر واجهة مستخدم ذات مظهر أصلي.
لدينا بعض الأدوات للمساعدة في تطوير ملفات .slint:
--auto-reload
معاينة واجهة المستخدم الخاصة بك أثناء العمل عليها (عندما يكون استخدام معاينة LSP غير ممكن).يرجى مراجعة ملف README الخاص بالمحررين للحصول على نصائح حول كيفية تكوين محررك المفضل ليعمل بشكل جيد مع Slint.
يمكنك استخدام Slint بموجب أي من التراخيص التالية، حسب اختيارك:
راجع خيارات ترخيص Slint على موقع الويب والأسئلة الشائعة حول الترخيص.
نحن نرحب بمساهماتك: في شكل تعليمات برمجية أو تقارير أخطاء أو تعليقات.
يرجى الاطلاع على الأسئلة الشائعة المنفصلة.
نحن متحمسون للبرامج - تصميم واجهة برمجة التطبيقات (API)، وتطوير البرامج عبر الأنظمة الأساسية ومكونات واجهة المستخدم. هدفنا هو جعل تطوير واجهات المستخدم أمرًا ممتعًا للجميع: بدءًا من مطوري Python أو JavaScript أو C++ أو Rust وصولاً إلى مصممي UI/UX. نحن نؤمن بأن البرمجيات تنمو بشكل عضوي، وإبقائها مفتوحة المصدر هي أفضل طريقة للحفاظ على هذا النمو. يتواجد أعضاء فريقنا عن بعد في ألمانيا.
لا تتردد في الانضمام إلى مناقشات Github للدردشة العامة أو الأسئلة. استخدم مشكلات Github للإبلاغ عن الاقتراحات العامة أو الأخطاء.
نحن نتحدث في مثيل Mattermost الخاص بنا حيث نرحب بك للاستماع إلى أسئلتك أو طرحها.
يمكنك بالطبع أيضًا الاتصال بنا بشكل خاص عبر البريد الإلكتروني إلى [email protected].