Python/tkinter: فواصل القائمة ، والعناصر المعوقة ، والتنقل في لوحة المفاتيح؟

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

سؤال

أنا أدرس عنصر واجهة مستخدم Tkinter Listbox ولم أتمكن من إيجاد حلول للوظائف التالية:

  1. كيف يمكنني إنشاء عناصر فاصل أفقي غير قابلة للتصوير ، على سبيل المثال. الفواصل المكافئة لعناصر أداة القائمة Tkinter's .add_separator ()؟ (باستخدام chars مثل الشرطات والدرجات السفلية تبدو مروعة).

  2. كيف يمكنني تعطيل عنصر معين؟ حاولت استخدام .itemConfig (الفهرس ، الحالة = "معطل") دون نجاح.

  3. كيف يمكنني تمكين التنقل لوحة المفاتيح ، على سبيل المثال. عندما تقوم إدخال لوحة مفاتيح المستخدم بالتمرير تلقائيًا إلى الأمام إلى أقرب عنصر يبدأ بالنص الذي كتبه المستخدم؟ يجب أن ربط ('u003CKeyPress> ، ...) وإدارة هذا السلوك بنفسي؟

  4. هل ستكون بعض الوظائف المذكورة أعلاه أسهل في التنفيذ باستخدام عنصر واجهة مستخدم نصية أو أداة TTK TreeView؟

شكرا لك ، مالكولم

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

المحلول

  1. لا يمكنك. القطعة لا تدعم ذلك.

  2. لا يمكنك تعطيل بعض العناصر ، ولا يدعم عنصر واجهة المستخدم سمة الحالة. ومع ذلك ، يمكنك مراقبة التحديد والقيام بالشيء المناسب إذا حدد المستخدم شيئًا معاقًا ، واستخدام المقدمة العنصر للدلالة على المعاقين.

  3. ستحتاج إلى ربط أحداث Keypress وإدارة السلوك بنفسك. إنه ليس صعبًا بشكل خاص ، بل مجرد مملة بعض الشيء.

  4. قد يكون أداة النصوص النصية أفضل رهان لك ، على الرغم من أنك ستضطر إلى إضافة روابط لتقليد الروابط الافتراضية لـ ListBox.

خلاصة القول: لا يوفر Tkinter شيئًا يدعم مباشرة ما تريد القيام به ، لكن لبنات البناء كلها موجودة. سيكون عليك فقط بناءها بنفسك.

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