Python Tkinter按钮因功能错误而无法创建
我对Python非常陌生,尤其是对使用Tkinter非常陌生。我有一个问题是如何在GUI中实际创建一个按钮 我正在尝试制作一个基本按钮,将输入框中的输入作为一个整数,并将其添加到当前余额中(类似于一个小型银行应用程序)。问题是,当我运行代码并单击“存款”按钮时,由于将输入框的输入转换为整数时出错,第二个应该生成(在Make_deposit()函数中定义)的“Make deposit”按钮将不会生成。据我所知,这个错误只是因为第二个“存款”按钮试图在按下按钮之前运行其功能而产生的。有没有办法防止这种情况发生?下面是代码,不包括一些与当前问题无关的程序位Python Tkinter按钮因功能错误而无法创建,python,button,user-interface,tkinter,Python,Button,User Interface,Tkinter,我对Python非常陌生,尤其是对使用Tkinter非常陌生。我有一个问题是如何在GUI中实际创建一个按钮 我正在尝试制作一个基本按钮,将输入框中的输入作为一个整数,并将其添加到当前余额中(类似于一个小型银行应用程序)。问题是,当我运行代码并单击“存款”按钮时,由于将输入框的输入转换为整数时出错,第二个应该生成(在Make_deposit()函数中定义)的“Make deposit”按钮将不会生成。据我所知,这个错误只是因为第二个“存款”按钮试图在按下按钮之前运行其功能而产生的。有没有办法防止这
from Tkinter import *
def get_entry(entry):
global s
s = entry.get()
s = int(s)
data["current"] += s
label = Label(root, text = "Current Balance: %d" % (data["current"]))
label.grid(row = 1, column = 0)
def make_deposit():
deposit = Entry(root, text = "Deposit Amount")
deposit.grid(row = 2, column = 0)
withdrawal.grid_forget()
deposit_button = Button(root, text = "Make Deposit", command = get_entry(deposit))
deposit_button.grid(row = 3, column = 0)
frame = Frame(root, height = 300, width = 300)
frame.grid(row = 1, column = 0)
label = Label(root, text = "ETA Until Car Purchase")
label.grid(row = 0, column = 0)
label = Label(root, text = "Current Balance: %d" % (data["current"]))
label.grid(row = 1, column = 0)
deposit = Button(root, text = "Make Deposit", command = make_deposit)
deposit.grid(row = 2, column = 0)
withdrawal = Button(root, text = "Make Withdrawal")
withdrawal.grid(row = 3, column = 0)
任何帮助都将不胜感激,请考虑到我是Tkinter的绝对初学者,因此我创建一些GUI元素的方式可能不是最好的方式。
command=
不带()
和参数的函数名
使用
command = get_entry(deposit)
您运行函数get_entry(deposit)
,其结果被分配给command=
如果您想动态地将函数分配给
command=
但是您需要lambda
:
command = lambda: get_entry(deposit)
始终添加
完整错误消息
,并且有许多行有问题,所以请在代码中标记这一行。如果有问题,请使用打印
查看变量中的内容(在提问之前)。顺便说一句:您忘了创建根(根=Tk()
),忘了运行mainloop(根.mainloop())
)非常感谢!工作得很有魅力!顺便说一句:在循环中使用命令=
时,请注意lambda
。大多数初学者在<代码>中的i
for i in;command=lambda:function(i)
。