إغلاق برنامج نصي easygui بيثون مع زر القياسية 'وثيقة'

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

سؤال

ولقد خلق <م> جدا التطبيق بسيط، الذي يقدم entrybox easygui () ويستمر في حلقة هذا إلى أجل غير مسمى لأنه يتلقى إدخال المستخدم.

ويمكنني إنهاء البرنامج باستخدام الزر إلغاء الأمر لأن هذا يعود بلا، ولكن أود أيضا أن تكون قادرة على استخدام معيار 'وثيقة' زر لإنهاء البرنامج. (أي أعلى يمين نافذة ويندوز، أعلى اليسار من نافذة ماك) هذا الزر لا يفعل شيئا في الوقت الحالي.

وبإلقاء نظرة على وحدة easygui لقد وجدت هذا السطر:

root.protocol('WM_DELETE_WINDOW', denyWindowManagerClose )

وهذا يبدو أن الجاني. أنا لست خبيرا TKinter لكن ربما استطيع العمل على كيفية تغيير هذا المعالج على العمل بالطريقة التي أريدها.

ولكن، وكما كنت تفضل عدم فوضى حول مع وحدة easygui، هل هناك طريقة لتجاوز هذا السلوك من مخطوطتي الرئيسي، ويكون الزر إغلاق إما إغلاق البرنامج صريح أو العودة لا أحد؟

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

المحلول

ووسيتطلب تغيير وحدة easygui، نعم. وسوف تحصل عليه تعديل!

و** لقد أرسلت في البريد الإلكتروني للخالق EasyGUI explaning هذا [12:12، يناير 23/09]

و** أنا فقط أريد أن أقول أن إمكانية هذا التغيير يحدث - على كل حال، وأنا أشك - هي صغيرة جدا. كما ترون، والمقصود EasyGUI أن يكون وسيلة بسيطة ومتميزة لإنشاء واجهات. أعتقد أن هذه الإضافة لن يساعد أي، وخاصة منذ واجهة تسلسلية جدا، لذلك سيكون مربكا للمستخدمين الجدد. [12:19، يناير 23/09]

و** قال الخالق EasyGUI هذا ردا على البريد الإلكتروني الخاص بي:

<اقتباس فقرة>   

ويظهر مربع حوار easygui ينبغي أبدا الخروج   تطبيق - يجب أن يمر إلى الوراء   قيمة إلى المتصل والسماح لل   المتصل تقرر ما يجب القيام به.

     

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

     

و- ستيف FERG

وأعتقد أن هذا هو التقدم على الأقل. [02:40، يناير 23/09]

نصائح أخرى

وأنا لا أعرف الآن، ولكن هل حاولت شيء من هذا القبيل:؟

root.protocol('WM_DELETE_WINDOW',  self.quit)

أو

root.protocol('WM_DELETE_WINDOW',  self.destroy)

ولم أحاول، ولكن جوجل شيء من هذا القبيل "Tkinter protocol WM_DELETE_WINDOW"

ولقد وجدت الحل، فإن الجواب هو أقل من مربع الاختيار، عندما تعرف بعض الوظائف (يمكنك كتابة فقط لايجاد denyWindowManagerClose) وانتقل إلى حيث يعرف ذلك. محوه ووضع هذا الرمز في مكانها.

    def denyWindowManagerClose():
#------------------------------------------------------------------
#  Changed by ProgrammingBR
#  Enables the user to close the window without entering a value
#  Youtube URL: https://www.youtube.com/channel/UCTZh6kWz_iYACNE6Jcy2lhw
#------------------------------------------------------------------
    global __enterboxText
    __enterboxText = None
    boxRoot.quit()

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

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