2016-09-06 8 views
5

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

def Enter(): 
    s = v.get() 
    print (v.get()) 

    e.delete(0, END) 
    e.insert(0, "") 

#Code, Code, Code 
... 

# Area To Enter Text 
v = StringVar() 
e = Entry(root, textvariable=v) 
e.pack() 

m = Message(root, text = "Your Input") 
m.pack() 

# Enter Button 
b = Button(root, text="OK", command=Enter) 
b.pack() 

क्या संदेश विजेट के पाठ को प्रतिस्थापित करने के लिए v के चर के लिए कोई तरीका है ??

नोट:

अगर मैं textvariable साथ text की जगह है, यह पाठ के बाद हर चरित्र कुंजी दबाने अपडेट हो जाता है, जैसा कि मैंने जब उपयोगकर्ता बटन दबाता है यह अद्यतन करने की जरूरत है, जहां।


मेरे पूरा कोड:

from tkinter import * 
import os 

# All Functions Below 
def callback(): 
    print ("HI") 

def Exit(): 
    os._exit(0) 

def Enter(): 
    s = e.get() 
    print (e.get()) 
    m.configure(text=s) 
    e.delete(0, END) 
    e.insert(0, "") 

def Population(): 
    root = Tk 

    root.mainloop() 

def SurvivalRate(): 
    root = Tk 

    root.mainloop() 

def BirthRate(): 
    root = Tk 

    root.mainloop() 

def NewGen(): 
    root = Tk 

    root.mainloop() 

root = Tk() 


generation = 0 

menubar = Menu(root) 
menubar.add_command(label="Hello!", command=callback) 
menubar.add_command(label="Quit!", command=Exit) 


# Area To Enter Text 
e = Entry(root) 
e.pack() 

m = Message(root, text = e) 
m.pack() 

# Enter Button 
b = Button(root, text="OK", command=Enter) 
b.pack() 

Pop = Button(root, text="Population", command=Population) 
Pop.pack() 
+0

टिंकर बटन के 'कमांड' पैरामीटर पर नज़र डालें। – galah92

+0

धन्यवाद! कुछ घंटों को पढ़ाना है, इसे आज रात में देखेंगे :) –

+0

ठीक है। लेकिन अब 'PY_VAR0' के बजाय, यह' .56748976' लौटाता है। लेकिन मैं वापस आने तक इंतजार कर सकता हूं। या अगर कोई और मदद कर सकता है, तो इसकी सराहना की जाएगी। – DavalliTV

उत्तर

4

सीधे शब्दों में जोड़ें:

m.configure(text=s) 

अपने कार्य करने के लिए:

def Enter(): 
    s = v.get() 
    print (v.get()) 
    m.configure(text=s) 
    e.delete(0, END) 
    e.insert(0, "") 

साइड-नोट के रूप में, आपको StringVar() की आवश्यकता नहीं है। नीचे दिया गया कोड बिल्कुल वही करेगा:

def Enter(): 
    s = e.get() 
    m.configure(text=s) 
    e.delete(0, END) 
    e.insert(0, "") 

#Code, Code, Code 
... 

# Area To Enter Text 
e = Entry(root) 
e.pack() 

m = Message(root, text = "Your Input") 
m.pack() 

# Enter Button 
b = Button(root, text="OK", command=Enter) 
b.pack() 

root.mainloop() 
+0

इसके लिए धन्यवाद। लेकिन अगर मैं एक चरित्र दर्ज करता हूं, तो लेबल 'PY_VAR0' कहता है। क्या इसे खाली छोड़ने का कोई तरीका है? – DavalliTV

+0

@ जैकबॉन्ड आपके कोड के स्निपेट पर मैं चलाता हूं, यह "आपका इनपुट" sais है, अगर मैं इसे मूल टिंकर विंडो में एम्बेड करता हूं। आपका पूरा कोड क्या है? –

+0

आपको 'स्ट्रिंगवार() 'बीटीडब्ल्यू की आवश्यकता नहीं है। आप सीधे 's = e.get()' चला सकते हैं। –

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