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上说出(“欢迎”,姓名)?
答案 0 :(得分:1)
似乎变量text
包含正确的值,但您显示的是name
(StringVar
}。
替换它:
textlabel = Label(self, text=name).pack()
由此:
textlabel = Label(self, text=text).pack()
要说出"Welcome, name"
,请更改text
的定义:
text = "Welcome, {}".format(name.get())
此外,如果您在其定义中添加textlabel
,则.pack()
将变得无用。你应该这样做:
textlabel = Label(self, text=text)
textlabel.pack()
或者像这样,如果你不需要将它存储在一个变量中:
Label(self, text=text).pack()