LTK عبارة عن مجموعة أدوات صغيرة لكتابة واجهات مستخدم الويب في PyScript. للحصول على شرح لـ PyScript وLTK، راجع YouTube.
للحصول على أمثلة انظر:
يتم تنفيذ LTK كمكتبة Python تعريفية وتستفيد من jQuery
لعمليات DOM.
تثبيت LTK من pypi:
python3 -m pip install pyscript-ltk
import ltk
ltk . Text ( "Hello World" ). appendTo ( ltk . body )
للبدء مع LTK، نوصيك بتجربته على pyscript.com:
يتم إنشاء أنواع الأدوات الجديدة عن طريق التصنيف الفرعي ltk.Widget
:
class HBox ( Widget ):
classes = [ "ltk-hbox" ]
افتراضيًا، يتم إنشاء عناصر واجهة المستخدم كعناصر div
DOM. يمكنك اختيار علامة مختلفة:
class Preformatted ( Widget ):
classes = [ "ltk-pre" ]
tag = "pre"
لإنشاء واجهة مستخدم، يتم إنشاء العناصر بشكل تصريحي:
ltk . Table (
ltk . TableRow (
ltk . TableHeader ( "header1" )
ltk . TableHeader ( "header2" )
),
[
ltk . TableRow (
ltk . TableData ( value1 ),
ltk . TableData ( value2 ),
)
for value1 , value2 in data
],
)
تتم إضافة الأدوات إلى الآخرين باستخدام استدعاءات jQuery
append
و appendTo
:
ltk . body . append (
ltk . Table (...). element
)
container = ltk . VBox (...)
ltk . H1 ( "This is a header" ). appendTo ( container )
عندما يتم إنشاء عنصر واجهة مستخدم LTK، يتم إرفاق عنصر jQuery المقابل به في المُنشئ ltk.Widget.__init__
. ويستخدم قيمة tag
التي تحددها فئة التصريح ويشار إلى العنصر الذي تم إنشاؤه باسم element
. نظرًا لأن استدعاء append
عبارة عن وظيفة JavaScript، يتم تنفيذها بواسطة jQuery، فإننا لا نمرر عنصر واجهة مستخدم LTK مباشرةً، ولكن نمرر element
لإلحاقه بـ DOM.
يمكن تصميم الأدوات باستخدام ثلاث طرق مختلفة:
css
الخاصة بـ jQuery
: ltk . Text ( "Error: Flux capacitor low!" )
. css ( "background-color" , "red" )
. css ( "color" , "white" )
. css ( "padding" , 8 )
dict
لتسهيل مشاركة الأنماط: error = {
"background-color" : "red" ,
"color" : "white" ,
"padding" : 8 ,
}
ltk . Text ( "Error: Flux capacitor low!" , error )
addClass
الخاصة بـ jQuery
: ltk . Text ( "Some text" ). addClass (" my - special - text )
يجب أن تحتوي ورقة الأنماط الخارجية على هذه القواعد:
. ltk-text {
font-family : Arial;
}
. my-special-text {
font-family : Courier;
background-color : red;
color : white;
padding : 8 px ;
}
يمكن تضمين أوراق الأنماط الخارجية في index.html
الأصلي أو إدراجها في وقت التشغيل من Python باستخدام:
ltk . inject_style ( "https://example.org/awesome_styles.css" )
يتم إرفاق معالجات الأحداث باستخدام آليات jQuery
.
def buy ( event ):
purchase (...)
ltk . Card ( "Buy Now" ). on ( "click" , ltk . proxy ( buy ))
يمكنك أيضًا استخدام مصمم الديكور الأكثر تعريفًا:
@ ltk . callback
def buy ( event ):
purchase (...)
ltk . Card ( "Buy Now" ). on ( "click" , buy )
شاهد حوض المطبخ LTK أو استكشف مجلد examples
يتم تغطية LTK بموجب ترخيص Apache:
ترخيص Apache هو ترخيص برنامج مفتوح المصدر متساهل.
فهو يتيح للمستخدمين استخدام البرنامج وتعديله وتوزيعه بحرية (بما في ذلك الأغراض التجارية).
يمكن توزيع الإصدارات المعدلة دون الحاجة إلى تحرير الكود المصدري. على الرغم من ضرورة توثيق تغييرات التعليمات البرمجية المصدر.
يتطلب الترخيص إصدارات معدلة للاحتفاظ بترخيص Apache وإشعار حقوق الطبع والنشر.
يتم توفير البرنامج من قبل المؤلفين "كما هو" دون أي ضمانات.
لا يتم منح المستخدمين حقوق براءات الاختراع من قبل المساهمين، ولكن لا يمكن للمساهمين إلغاء منح براءات الاختراع للمساهمات السابقة.
لا يتطلب الترخيص أعمالًا مشتقة لاعتماد ترخيص Apache. على الرغم من تشجيع هذا من أجل الاتساق.
إذا لم تقم مطلقًا بتشغيل أدوات الإعداد والخيوط وما إلى ذلك على جهازك، فقم بما يلي:
python3 -m pip install --user --upgrade setuptools wheel twine build
لإنشاء نسخة، قم أولاً بزيادة الإصدار في pyproject.toml
:
[ project ]
name = "pyscript-ltk"
version = "0.1.22"
ثم قم ببناء الحزمة في توزيعة مصدرية وعجلة بايثون:
python3 -m build
ثم تحقق مما إذا كان البناء يعمل مع pypi:
twine check dist/*
ثم قم بالتحميل إلى بيئة اختبار pypi:
twine upload --repository pypitest dist/*
أخيرًا، إذا بدا أن تحميل اختبار pypi يعمل بشكل جيد، فقم بتشغيل:
twine upload dist/*
إذا حصلت على خطأ بوجود إصدار معين بالفعل، فتحقق من محتويات المجلد dist
.