saad-almikhlafi
إطار واجهات Python مختصر، ببنية وأدوات واجهة من تنفيذ المشروع نفسه.
اسم التوزيعة saad-almikhlafi واسم الاستيراد saad_almikhlafi. هذا مشروع مستقل: نظام العناصر والتخطيط والأحداث والرسم مكتوب لهذا الإطار، ويستعمل Pygame فقط كطبقة منخفضة المستوى للنافذة والرسم والإدخال؛ لا يعتمد على إطار واجهات Python آخر.
الإصدار
0.1.1منشور على PyPI. الإصدار0.1.2تعديل محلي للاختبار فقط، غير منشور، لمراجعة ترتيب بدء SDL على Android.
التثبيت والتجربة
ثبّت الإصدار المنشور الحالي:
python -m pip install --upgrade saad-almikhlafi==0.1.1
للتطوير وتشغيل الاختبارات من مجلد المشروع:
python -m pip install -e ".[test]"
يتطلب Python 3.10+ وPygame 2.1.3+.
لتشكيل النص العربي واتجاهه، ثبّت الإضافات الاختيارية من مجلد المشروع:
pip install -e ".[test,arabic]"
تستخدم عناصر النص الخط الافتراضي إن لم تحدد font_path. لعرض العربية على الجهاز، مرّر مسار ملف خط يدعم العربية، مثل text("مرحبًا", font_path="/مسار/الخط.ttf") أو app(root, font_path="/مسار/الخط.ttf").
مثال سريع
from saad_almikhlafi import app, btn, col, field, text
app(
col(
text("Welcome!", font=28),
field(hint="Your name"),
btn("Say hello", on=lambda widget: print("Hello!")),
spacing=12,
padding=20,
),
title="تطبيقي الأول",
)
يعمل المثال في بيئة سطح المكتب، وعلى Android داخل Pydroid 3 عند توافر Pygame 2 وتهيئة SDL للفيديو في البيئة. على Android يفتح الإطار شاشة كاملة باستخدام الدقة الأصلية للجهاز، مع الاحتفاظ بالمقاس المحدد كاحتياط. تحقق من Pygame نفسه باختبار مستقل عند استكشاف مشاكل العرض:
import pygame
pygame.init()
screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
print("Pygame fullscreen ready:", pygame.version.ver, screen.get_size())
إذا فشل set_mode في هذا الاختبار أيضًا، فالمشكلة في توافق/تهيئة Pygame أو SDL داخل Pydroid وليست في كود الواجهة؛ أصلح تثبيت Pydroid/حزمة Pygame المتوافقة ثم أعد الاختبار. وجود pygame وإظهار رقم إصدار لا يثبت وحده أن SDL استطاع إنشاء نافذة Android. يذكر وصف Pydroid 3 الرسمي دعم Pygame 2. في الإصدار المحلي 0.1.2، استدعاء set_mode يسبق ضبط العنوان وتهيئة الخط؛ اختبره في Pydroid قبل اعتماد أي إصدار منشور.
عناصر الواجهة
| الاستدعاء | الوظيفة |
|---|---|
col(...) / column(...) |
ترتيب العناصر رأسيًا |
row(...) |
ترتيب العناصر أفقيًا |
text("...") / label("...") |
نص مع حجم ولون ومحاذاة |
btn("...") / button("...") |
زر مع دالة on عند النقر |
field(...) / input(...) |
حقل إدخال نص أحادي السطر |
image(path) |
عرض ملف صورة محلي |
spacer() |
مساحة تتمدد داخل الصف أو العمود |
scroll(content) |
مساحة تمرير رأسية |
screen_manager({name: widget}) |
تبديل بين شاشات مسماة مع سجل رجوع |
app(root, ...) / run(root, ...) |
تشغيل نافذة التطبيق |
تقبل التخطيطات spacing, padding, background, width, height, align. وتقبل العناصر خصائصها الخاصة مثل font, color, hint, secure, on_change وon_submit. استخدم manager.show("settings") للتبديل وmanager.back() للعودة.
المرحلة الحالية
المراحل 1–3: نواة العناصر والتخطيطات والأحداث والرسم، تمرير رأسي، شاشات مسماة وسجل رجوع، مع معالجة عربية اختيارية وخطوط مخصصة. نجحت اختبارات الرسم واللمس الاصطناعي والعربية على Linux؛ لم يجر التشغيل على جهاز Android بعد.
المرحلة التالية: تشغيل examples/pydroid_smoke.py على Pydroid والتحقق على الجهاز من اللمس ولوحة المفاتيح والاتجاه؛ ثم تحسين السمات وإتاحة الوصول والتوافق قبل إصدار مستقر. لا يُنشر أي إصدار قبل اكتمال المراجعة وموافقة المستخدم.
English
saad-almikhlafi is a standalone Python UI toolkit with its own widget tree, layout, event handling, scrolling, screens, and drawing code. It uses Pygame as a low-level graphics/input backend. Optional Arabic shaping and custom fonts are available. Import it as saad_almikhlafi. Version 0.1.1 is published on PyPI. Version 0.1.2 is an unpublished local test build that calls pygame.display.set_mode before setting the caption or initializing fonts.
Metadata
Release files for saad-almikhlafi 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| saad_almikhlafi-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / saad_almikhlafi-0.1.2-py3-none-any.whl
| Download URL | saad_almikhlafi-0.1.2-py3-none-any.whl |
|---|---|
| Size | 15.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
231b167a7db52c2afc63ff1a63f3be5b7efbfc1fe8ba07b0cb03a1d16ec4e0ca
|
|
BLAKE2b-256 checksum How to use checksums |
e87bf55616ce02ea87512c16c53ab18e20b858361bb13a703a0c1c4142d6c8ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|