gui-python, tkinter बंद किए बिना mainloop () से कैसे बाहर निकलना है

मेरे पास एक साधारण पायथन जीयूआई है जो एक ग्रिड में भरती हैकिसी सरणी में मानों के आधार पर, और मैं चाहता हूं कि यह आसान जीयूआई स्क्रीन पर बैठे जबकि अन्य फ़ंक्शंस चलें। इन अन्य कार्यों के लिए समय अनिश्चित है, इसलिए मैं उन्हें बाद में (समय, कार्य) का उपयोग करके कुछ नियमित अंतराल पर कॉल नहीं कर सकता

def go(self):
"""
Start the main GUI loop
:return:
"""
mainloop()

मेनलोप गो फंक्शन में शुरू होता है, और मैं जानना चाहता हूं कि खिड़की बंद किए बिना या मेनूप को कॉल किए बिना जीयूआई खींचने के लिए मेनलोप से तोड़ना संभव है या नहीं?

मुझे पता है मैं कर सकता हूँ

after(time, function)

लेकिन जीयूआई ऑन-स्क्रीन रखने के दौरान मुझे मेनलोप को मारने के लिए क्या कहना है, इस नुकसान के कारण मुझे नुकसान हुआ है।

उत्तर:

जवाब के लिए 0 № 1

मेनलोप के साथ अपने फ़ंक्शन को चलाने के लिए थ्रेडिंग मॉड्यूल का उपयोग करें:

from threading import Thread

def go(self):
t = Thread(target=function)
t.start() # start the thread in the background
mainloop()

जवाब के लिए 0 № 2

सीधे शब्दों में कहें:आप "टी, या कम से कम यह नहीं कर सकते हैं कि आप क्या करना चाहते हैं। मैं आपको मुख्य लूप में रखने के लिए कोड को पुनर्गठन की अनुशंसा करता हूं (जैसे कि टिंकर को कक्षा बनाना और कार्यों को अपने init फ़ंक्शन में कॉल करना)। यदि आप अपना पूरा कोड पोस्ट करते हैं तो मैं इसके साथ आपकी सहायता कर सकता हूं।


जवाब के लिए 0 № 3

मेनलोप गो फंक्शन में शुरू होता है, और मैं जानना चाहता हूं कि खिड़की बंद किए बिना या मेनूप को कॉल किए बिना जीयूआई खींचने के लिए मेनलोप से तोड़ना संभव है या नहीं?

ऐसा लगता है कि आपके पास एक बहुत ही अनूठी आवश्यकता है। आपको एक शाब्दिक उत्तर देने के लिए, हाँ, विंडो बंद किए बिना मेनलोप से बाहर निकलना संभव है। आप कॉल कर सकते हैं quit रूट विंडो पर कारण mainloop बाहर निकलने के लिए। आप पुनरारंभ कर सकते हैं mainloop, या कॉल करें update घटनाओं को संसाधित करने के लिए रूट विंडो पर विधि।

यह आम तौर पर नहीं है कि जीयूआई को कैसे काम करना चाहिए, लेकिन यदि आप पूरी तरह से निश्चित हैं कि प्रोग्राम चलाने के दौरान आपको अपडेट करने के लिए विंडो की आवश्यकता नहीं है, तो आप निश्चित रूप से ऐसा कर सकते हैं यदि आप चाहें।


संबंधित सवाल
सबसे लोकप्रिय