2011-05-25 10 views
5

मेरे मूल कार्यक्रम के लिए इस्तेमाल किया 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 बिना ऐसा करने के लिए, जैसा कि मैंने एक संवाद हर समय पॉपिंग नहीं करना चाहती देख रहा हूँ उपयोगकर्ता इनपुट की आवश्यकता है।

उत्तर

3

आपको जो चाहिए वह एक मॉडल संवाद है। मुझे जीटीके (या पीईजीटीके) बिल्कुल पता नहीं है, लेकिन उदाहरण in the documentation प्रतीत होता है।

+0

धन्यवाद, लेकिन एक मॉडल संवाद सिर्फ उपयोगकर्ता को संवाद के बाहर किसी भी विजेट के साथ बातचीत करने से रोकता है। –

+1

@ सैम: जहां तक ​​मुझे पता है, gtk.Dialog की रन विधि प्रोग्राम को अवरुद्ध करती है और प्रतिक्रिया मिलने पर ही लौटाती है (कॉलबैक की आवश्यकता नहीं होती है)। Gtk.Dialog subclassing आप की जरूरत हो सकती है। –

+0

@ जोंग, मुझे लगता है कि आप सही हैं। –

संबंधित मुद्दे