2016-10-29 23 views
0
from tkinter import * 
import random 
root = Tk() 
name = StringVar() 

class Window(Frame): 

    def __init__(self, master = None): 

     Frame.__init__(self, master) 
     self.master = master 
     self.init_window() 

    def init_window(self): 

     self.master.title("Are you smart enough?") 
     self.pack(fill=BOTH, expand="no") 

     self.entry = Entry(root,textvariable=name) 
     self.entry.pack() 

     enterButton = Button(self, text="Enter", command=self.client_enter) 
     enterButton.pack(side="top", fill="none", expand="True", anchor = "s") 

    def client_enter(self): 

     text = name.get() 
     textlabel = Label(self, text=name).pack() 

app = Window(root) 
root.geometry("1200x600") 
root.mainloop() 

何らかの理由で、名前を入力して「Enter」ボタンを押しても何も表示されません。
Tkinterで(「ようこそ」、名前)どうすればいいですか?このコード行を入力すると、私はpy_var0を取得し続ける

+0

使用 'テキスト= name.get()'の代わりに 'テキスト=名前 ' – furas

答えて

1

変数textに正しい値が含まれているようですが、代わりにname(これはStringVar)と表示されています。

この置き換えます、また

text = "Welcome, {}".format(name.get()) 

:これにより

textlabel = Label(self, text=name).pack() 

textlabel = Label(self, text=text).pack() 

、それは"Welcome, name"を言う作るなどtextの定義を変更することを012あなたが.pack()をその定義に入れると、は役に立たなくなります。あなたは変数に格納する必要がない場合

textlabel = Label(self, text=text) 
textlabel.pack() 

またはこのような:あなたはこのようにそれをやるべき

Label(self, text=text).pack() 
関連する問題