【问题标题】:Tkinter User Input Response [duplicate]Tkinter 用户输入响应 [重复]
【发布时间】:2017-08-12 18:36:58
【问题描述】:

我目前正在尝试制作一个接收用户输入的程序,然后根据用户输入将其与另一个字符串进行比较,如果它在 tkinter 中匹配,则打印出某个输出。我尝试使用 get 方法、textvariable 等,我也在其他地方查看过,但它似乎不起作用或已过时。

def trebleBass():
    print(username.get())
username = StringVar()
entry1 = Entry(window, textvariable = username)
entry2 = Entry(window)
logo = PhotoImage(file = "templogo2.png")
titleLogo = Label(window, image = logo)
titleLogo.grid(columnspan = 2)
framepackage = Frame(window)
framepackage.grid(row = 3)


label1.grid(row = 1, sticky = E)
label2.grid(row = 2, sticky = E)

entry1.grid(row = 1, column = 1)
entry2.grid(row = 2, column = 1)

translate = Button(window, text = "Translate", bg = 'black', fg = 'white', 
command = trebleBass())

我放置了一个只打印用户输入的函数来测试它,但它甚至不起作用。我对 Python 有点陌生,因此非常感谢您的帮助。

【问题讨论】:

    标签: python python-3.x tkinter user-input tkinter-entry


    【解决方案1】:

    不要在 command 参数上加上括号。当您放置括号时,您将传入trebleBass(在本例中为None)的返回值,而不是函数本身。

    简单地说:

    translate = Button(window, text="Translate", bg="black", fg="white",
                       command=trebleBass)
    

    请注意括号最后没有了。

    【讨论】:

    • 感谢您的帮助,它似乎有所好转,但它响应“TypeError: trebleBass() missing 1 required positional argument: 'event'”所以我不太确定该怎么做。我确实将事件放入函数参数中
    • 抱歉从参数列表中删除事件。按钮命令是少数不获取事件对象的 tkinter 回调之一。我正在考虑 tkinter 中的其他事件。我会从答案中删除它。因此,只需将参数列表留空,它现在应该可以工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多