使用tkinter时,.get()方法似乎不适用于我的代码

时间:2019-04-06 15:39:31

标签: python tkinter

我正在尝试建立一个带有按钮和标签等的tkinter窗口。我添加的按钮旨在调用一个函数,但无法正常工作。

该函数包含以下行 x = entry1.get() 但是,这是说没有定义entry1(尽管它是在程序的前面定义的)。 我在YouTube频道上看到了这项工作,对此我感到非常困惑。

这还不是全部代码(我已经完成了基本工作)

def game():
    x=entry1.get()
    label=Label(root,textvariable=x)
    label.grid(row=5,column=2)


def mainwindow():

    root=Tk()
    root.title("Typing Game")
    root.geometry("1920x1080")
    entry1=Entry(root)
    entry1.grid(row=2,column=4)
    button=Button(root,text="Hit this button when done",command=game)
    button.grid(row=1,column=4)

    root.mainloop()

mainwindow()

X最终应该是用户输入的文本,但它只是说在尝试执行“ x = entry1.get()”行时未定义entry1。

1 个答案:

答案 0 :(得分:0)

确实没有定义<div class="card mx-auto mb-2" style="width: 12rem;"> <div class="" style="height:200px;"> <img class="card-img-top" src="https://www.fillmurray.com/200/100" alt="Card image cap"> </div> <div class="card-body"> <p class="card-text">Verticall center this image</p> </div> </div> 。 (稍后在下面的代码中定义)。因此,您需要以不同的方式实现它。那是一种方式:

entry1

因此,我在from tkinter import * from functools import partial def game(entry, label): label['text'] = entry.get() def mainwindow(): root = Tk() root.title("Typing Game") root.geometry("1920x1080") entry1 = Entry(root) entry1.grid(row=2, column=4) label = Label(root) label.grid(row=5, column=2) func = partial(game, entry1, label) button = Button(root, text="Hit this button when done", command=func) button.grid(row=1, column=4) root.mainloop() mainwindow() 函数中创建了标签(无值)。在mainwindow()函数中,我只是设置了标签的值。注意,我将game(entry, label)函数更改为接受2个参数,因此我们摆脱了game错误。另外,我使用了not defined at tha point函数,因此可以为按钮的命令分配一个带有参数的函数。