ما هو مدير العرض لتطبيق Python غير التفاعلي و Mplayer؟

StackOverflow https://stackoverflow.com/questions/3009634

سؤال

أقوم بتطوير تطبيق سيتم تشغيله على Linux لتشغيل ملء الشاشة طوال الوقت (لا توجد قوائم أو صواني أو أي شيء سيكون مرئيًا).

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

أحتاج إلى شيء مع أصغر بصمة ممكنة ، مما يتيح لي تشغيل تطبيق Python الرسومي ولدي نافذة mplayer في نفس الوقت ، بدقة شاشة عريضة (شاشة عريضة ، 16: 10،16: 9 ، إلخ). بخلاف ذلك ، لا يحتاج إلى الكثير من الميزات ، ولكن حجم البصمة النهائية هو أهم شيء سأبحث عنه.

أي مدير نافذة تنصح؟

تحرير: لن يكون هناك أي تفاعل مع التطبيق المطلوب.

هل كانت مفيدة؟

المحلول

لا تحتاج فعليًا إلى أي مدير نافذة أو مدير عرض. كل ما عليك فعله هو فتح نافذتك الأولية بنفس هندسة نافذة الجذر. أفترض أنه يمكنك حتى الرسم مباشرة إلى نافذة الجذر إذا أردت.

إذا كنت تستخدم بعض مكتبة العرض ، فربما يكون لها طريقة سهلة لفتح نافذة ملء الشاشة. على سبيل المثال باستخدام إصدار حديث بما يكفي من SDL من خلال Pygame يمكنك القيام به

pygame.display.init()
surface = pygame.display.set_mode((0,0),pygame.FULLSCREEN,0)

للحصول على نافذة تملأ الشاشة بأكملها. سيعمل هذا حتى لو لم يكن هناك مدير نافذة يعمل.

أما بالنسبة للعامين ، فإنه يقبل -geometry العلم ، حتى تتمكن من استخدام شيء مثل mplayer -geometry 640x480+20+20 لعرض نافذة Mplayer 20 بكسل من أعلى 20 بكسل من اليسار وحجم 640 × 480 بكسل.

نصائح أخرى

ربما كنت تعني مدير النوافذ. إدارة العرض هي KDM ، GDM وما شابه. مديري Windoe ، على سبيل المثال ، Gnome ، XFCE ، KDE ، Ratpoison ، FVWM ، TWM ، Blackbox قليل. يمنح Ratpoison شاشة كاملة للتطبيق الموجود في المقدمة ولكنه يتطلب تفاعل لوحة المفاتيح الثقيلة (وبالتالي اسم Ratpoison) وليس تفاعل الماوس على الإطلاق.

أفترض أنك تقوم بتشغيل كل من Python Gui و Mplayer في مجموعة من الأشكال الهندسية التي تظهر في نفس الوقت ، وملء الشاشة.

كما علق ، يجب ألا تحتاج إلى مدير نافذة لتحقيق ذلك. يمكن أن يكون لديك تطبيق Python GUI الخاص بك الحصول على معلمات سطر الأوامر لتحديد هندسة النوافذ الخاصة به وكذلك استدعاء mplayer ملء الشاشة مع المعلمة -goometry. يجب أن تملأ الشاشة كما هو متوقع ، دون أي زينة نافذة.

الآن يمكن أن يكون لديك برنامج StartX Script دعا للمستخدم الذي يقوم بتشغيله جميعًا ولديه برنامج نصي مخصص ~/.xinitrc يقوم بشيء مثل:

#!/bin/sh

exec python my_gui_app --whatever-sets-geom &
exec mplayer -fs video.avi

إذا كان تطبيق Yout Pyhon سيقوم بدلاً من ذلك بإطلاق Mplayer ، فما عليك سوى ترك أول مكالمة "Exex" (إزالة "&") وجعلها تتصل بـ Mplayer حسب الرغبة في وضع الأبعاد المتوقعة في "-fs".

يرجى ملاحظة أنك قد تحتاج إلى استخدام شيء مثل برنامج "XSET" لتعطيل طيبة الشاشة بسبب توفير الطاقة ، وإخفاء المؤشر (على الرغم من أن IIRC هذا شيء يفعله MPlayer لنافذته الخاصة) ، وأشياء من هذا القبيل.

وأيضًا ، قد ينتهي الأمر بشيء ما ، على سبيل المثال ، تطبيقات GTK على شاشة عارية X باستخدام سمة "قبيحة" ، لذلك قد تحتاج إلى تكوين نمط مجموعة الأدوات إلى حد ما.

أقوم بشيء مشابه في "مربع الإعداد الخاص بي" ولا أستخدم أي مدير نافذة.

إنه يحضر Debian ، ومن inittab i قم بتوصيل المستخدم الذي يقوم بتشغيل الشاشة. يبدأ هذا المستخدم. profile x ، الذي يعمل .xinitrc ، والذي يبدأ تطبيق python الخاص بي الذي يعمل كخادم شبكة أمام mplayer (تشغيل mplayer في وضع -slave).

لا يحتوي تطبيق Python الخاص بي على عنصر واجهة المستخدم الرسومية - يعمل Mplayer فقط على شاشة X. ولكن في حالتك ، لا ينبغي أن يكون مختلفًا. كما ذكرت في تعليق على إجابة أخرى ، قد ترغب في النظر في كيف يمكنك تحرير نافذة Mplayer لإعطائك سيطرة أكبر على وضعها و/أو حركتها/حجمها.

القيام بذلك بهذه الطريقة تجنب مدير العرض ومدير نافذة. هذا يبسط الحل ، والأحذية بشكل أسرع ويستخدم بصمة أصغر (يتم تشغيل بطاقة SD ، مع أكوام من المساحة لتجنيبها).

أدرك أن هذا سؤال قديم ، لكنني أستخدم OpenBox على نظامي ، لقد قمت بإنشاء ملف تكوين مخصص يعطل جميع اختصارات لوحة مفاتيح الماوس ، وأزيل الحدود وما إلى ذلك على التطبيقات. في OpenBox Config ، قمت حتى بإنشاء بعض الاختصارات السرية التي يمكن تشغيل FX. Xterm لتصحيح الأخطاء على الهواء مباشرة على المربع.

كانت وثائق OpenBox مفيدة للغاية في اكتشاف كل شيء ، لقد قمت بالتكوين في حوالي 30 دقيقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top