दिलचस्प पोस्ट
Exec () का उपयोग करते समय कमांड प्रॉम्प्ट विंडो छुपाएं जिस तरह से फ़ायरबेज डेटाबेस क्विकस्टार्ट सुरक्षित हैं, वह गिनती सुरक्षित है? यह एप्लिकेशन मौजूद नहीं है (एप_id = xxx) मूल तत्व प्रदर्शित होने पर HTML बाल तत्व प्रदर्शित करें: कोई नहीं चार अरब दिए गए लोगों के बीच पूर्णांक नहीं ढूंढें सी # में निर्देशों का उपयोग कर अप्रयुक्त हटाएं क्यों? c # linq क्रम से संख्या है जो स्ट्रिंग हैं (और आप उन्हें int पर परिवर्तित नहीं कर सकते हैं) सिस्टम। टाइमर। टाइमर के बाद समाप्त होने वाले समय समाप्त होने वाला ईवेंट। कोष्ठक () कहा जाता है एक्सेल (.XLS और .XLSX) सी # से फ़ाइल बनाएँ कैसे नुकीले में एक सरणी में जगह बढ़ाने के लिए? आवेदन चलाने के लिए तर्क दें TypeError: console.log (…) फ़ंक्शन नहीं है स्ट्रिंग PHP से पहले 3 वर्ण और अंतिम 3 वर्ण हटाएं जावा एसक्यूएल तारीख समय एंड्रॉइड में पार्स एपीआई का उपयोग कर पार्स सर्वर में एक छवि कैसे अपलोड करें

टंकिनर: विधि के बाद कैसे उपयोग करें

हे मैं अजगर के लिए नया हूँ और मेरे गुइ के लिए टंकिनर का उपयोग कर रहा हूं। "बाद" विधि का उपयोग करने में मुझे परेशानी हो रही है लक्ष्य हर 5 सेकंड में एक यादृच्छिक पत्र प्रकट करना है।

यहां मेरा कोड है:

import random import time from tkinter import * root = Tk() w = Label(root, text="GAME") w.pack() frame = Frame(root, width=300, height=300) frame.pack() L1 = Label(root, text="User Name") L1.pack(side=LEFT) E1 = Entry(root, bd =5) E1.pack(side=LEFT) tiles_letter = ['a', 'b', 'c', 'd', 'e'] while len(tiles_letter) > 0: rand = random.choice(tiles_letter) tile_frame = Label(frame, text=rand) tile_frame.pack() frame.after(500) tiles_letter.remove(rand) # remove that tile from list of tiles root.mainloop() 

कोई मुझे मदद कर सकता है — समस्या निश्चित रूप से फ़्रेम है। बाद (500): मुझे यकीन नहीं है कि "फ्रेम" का उपयोग करने के लिए सही है और मैं नहीं जानता कि कौन सा तर्क 500 के बाद होता है।

धन्यवाद

Solutions Collecting From Web of "टंकिनर: विधि के बाद कैसे उपयोग करें"

आपको समय की देरी के बाद कहा जाने वाला फ़ंक्शन देना होगा, जिसके बाद दूसरा तर्क होगा:

के बाद (देरी_एमएस, कॉलबैक = कोई नहीं, * आर्ग्स)

किसी अलार्म कॉलबैक को एक निश्चित समय के बाद कहा जाता है।

तो आप वास्तव में क्या करना चाहते हैं यह है:

 tiles_letter = ['a', 'b', 'c', 'd', 'e'] def add_letter(): rand = random.choice(tiles_letter) tile_frame = Label(frame, text=rand) tile_frame.pack() root.after(500, add_letter) tiles_letter.remove(rand) # remove that tile from list of tiles root.after(0, add_letter) # add_letter will run as soon as the mainloop starts. root.mainloop() 

कॉलबैक फ़ंक्शन के अंदर कॉल करने के after कॉल को फिर से दोहराए जाने के लिए फ़ंक्शन को शेड्यूल करने की आवश्यकता है, क्योंकि केवल एक बार दिए गए फ़ंक्शन को निष्पादित करने के after । यह दस्तावेज़ीकरण में भी उल्लेख किया गया है:

कॉलबैक को केवल इस विधि के प्रत्येक कॉल के लिए एक बार कहा जाता है। कॉलबैक को कॉल करने के लिए, आपको कॉलबैक को अपने अंदर पुन: पंजीकृत करना होगा

ध्यान दें कि आपका उदाहरण tiles_letter में सभी प्रविष्टियों को समाप्त करने के तुरंत बाद एक अपवाद फेंक देगा, इसलिए उस स्थिति को संभालने के लिए आपको अपना तर्क बदलना होगा, चाहे जो भी आप चाहते हैं यह आसान बनाने के लिए add_letter की शुरुआत में एक चेक जोड़ना आसान होगा, यह सुनिश्चित करने के लिए कि सूची खाली नहीं है, और सिर्फ अगर return तो:

 def add_letter(): if not tiles_letter: return rand = random.choice(tiles_letter) tile_frame = Label(frame, text=rand) tile_frame.pack() root.after(500, add_letter) tiles_letter.remove(rand) # remove that tile from list of tiles