سؤال

هل تعرف طريقة ذكية للاختباء أو بأي طريقة أخرى تتخلص من نافذة الجذر التي تظهر ، تم فتحها بواسطة Tk()؟ أود فقط استخدام مربع حوار عادي.

هل يجب أن أتخطى الحوار ووضع جميع مكوناتي في نافذة الجذر؟ هل هو ممكن أم مرغوب فيه؟ أم أن هناك حلًا أكثر ذكاءً؟

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

المحلول

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

للإجابة على سؤالك المحدد حول كيفية إخفاءه ، استخدم ينسحب طريقة نافذة الجذر:

import Tkinter as tk
root = tk.Tk()
root.withdraw()

إذا كنت ترغب في جعل النافذة مرئية مرة أخرى ، اتصل DeiConify (أو wm_deiconify) طريقة.

root.deiconify()

بمجرد الانتهاء من مربع الحوار ، يمكنك تدمير نافذة الجذر إلى جانب جميع مصادر tkinter الأخرى مع هدم طريقة:

root.destroy()

نصائح أخرى

لم أختبر لأنه ليس لدي أي بيئة بيثون/تينتر ، لكن جرب هذا.

في TK Pure ، هناك طريقة تسمى "WM" لإدارة النوافذ. هناك يمكنك أن تفعل شيئًا مثل "Wm Delivery .mywindow" حيث ".mywindow" هو toplevel.

في Tkinter يجب أن تكون قادرًا على فعل شيء مشابه لـ:

root = Tkinter.Tk()
root.withdraw() # won't need this

إذا كنت ترغب في جعل النافذة مرئية مرة أخرى ، اتصل DeiConify (أو wm_deiconify) طريقة.

root.deiconify()

على OSX ، يبدو أن Iconify يعمل بشكل أفضل:

root = Tkinter.Tk()
root.iconify()

إذا كنت لا تريد أن تكون هناك "فلاش" عند إنشاء النافذة ، فاستخدم هذا التباين الطفيف:

import Tkinter as tk
root = tk.Tk()
root.overrideredirect(1)
root.withdraw()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top