मेरे मूल कार्यक्रम के लिए इस्तेमाल किया input
, इस तरह करता है:एक अजगर कार्यक्रम बंद करो जब तक एक उपयोगकर्ता कोई ऐसा कार्य
n = input("Enter your favorite number: ")
# do stuff with number
अब, मैं एक जीटीके जीयूआई में बदला गया है, लेकिन अभी भी एक ही बात को पूरा करना चाहते हैं। अब कोड के इस बहुत समान टुकड़ा को देखो:
n = myWindow.getNumber()
# do stuff with number
यह एक getNumber()
विधि है कि केवल उपयोगकर्ता के बाद रिटर्न एक विंडो में सबमिट बटन प्रेस लिखने के लिए संभव होगा? (कैसे input
समारोह काम करता है की तरह) या यह मेरा ही एकमात्र विकल्प है:
def callback(widget, event):
n = myWindow.inputWidget.getValue()
# do stuff with number
n = myWindow.getNumber(callback)
अद्यतन: मैं एक gtk.Dialog बिना ऐसा करने के लिए, जैसा कि मैंने एक संवाद हर समय पॉपिंग नहीं करना चाहती देख रहा हूँ उपयोगकर्ता इनपुट की आवश्यकता है।
धन्यवाद, लेकिन एक मॉडल संवाद सिर्फ उपयोगकर्ता को संवाद के बाहर किसी भी विजेट के साथ बातचीत करने से रोकता है। –
@ सैम: जहां तक मुझे पता है, gtk.Dialog की रन विधि प्रोग्राम को अवरुद्ध करती है और प्रतिक्रिया मिलने पर ही लौटाती है (कॉलबैक की आवश्यकता नहीं होती है)। Gtk.Dialog subclassing आप की जरूरत हो सकती है। –
@ जोंग, मुझे लगता है कि आप सही हैं। –