Skip to main content

saad-almikhlafi

إطار واجهات Python مختصر، ببنية وأدوات واجهة من تنفيذ المشروع نفسه.

اسم التوزيعة saad-almikhlafi واسم الاستيراد saad_almikhlafi. هذا مشروع مستقل: نظام العناصر والتخطيط والأحداث والرسم مكتوب لهذا الإطار، ويستعمل Pygame فقط كطبقة منخفضة المستوى للنافذة والرسم والإدخال؛ لا يعتمد على إطار واجهات Python آخر.

الإصدار 0.1.1 منشور على PyPI، ويتضمن إصلاح بدء العرض على Android/Pydroid. الإصدار 0.1.0 يبقى متاحًا.

التثبيت والتجربة

ثبّت الإصدار المنشور الحالي:

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. اختُبر وضع الشاشة الأصلية مستقلًا في Pydroid؛ يُرجى تجربة المثال الكامل بعد تثبيت 0.1.1.

عناصر الواجهة

الاستدعاء الوظيفة
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 and opens Android/Pydroid using the device's native fullscreen mode; version 0.1.0 remains available.

Metadata

Release files for saad-almikhlafi 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for saad-almikhlafi 0.1.1
File Size Uploaded
saad_almikhlafi-0.1.1.tar.gz 20.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for saad-almikhlafi 0.1.1
File Interpreter ABI Platform
saad_almikhlafi-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 35.6 kB

Release files / saad_almikhlafi-0.1.1.tar.gz

Download URL saad_almikhlafi-0.1.1.tar.gz
Size 20.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3e4b245bd904eaf1fd8b0042746f5480991a8c65876abe812959a39de0015832
BLAKE2b-256 checksum
How to use checksums
94091a13f47e6c17e967fa0dfe499f65f8396ec50068ef86da02fa550062db25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / saad_almikhlafi-0.1.1-py3-none-any.whl

Download URL saad_almikhlafi-0.1.1-py3-none-any.whl
Size 15.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc34fa89ab1e9d3cd427eea0640889a976eb581ec9e8e42eda95dcfde8114d1b
BLAKE2b-256 checksum
How to use checksums
2ee7ff3824f7783e40316871093a05533a9d0481ad35e9e6aef153cbdc15f577
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

0.1.2

1 release file

This release

0.1.1 This release

2 release files

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page