python中的tkinter计算器
我对tkinter和python都是新手,我正在尝试创建一个GUI窗口来计算约会之夜的总成本,并提供不同的旅行、娱乐等选项。我有两个主要问题: 1.如果用户试图输入提示,则不会发生任何事情。不过,只要用户不想留下餐馆小费,这个程序就可以工作。我尝试过重新格式化,但我似乎不明白为什么我的技巧编码方式不起作用。仅当选择了餐厅选项时,才应添加小费。 2.这个错误可能相对简单,但我不知道如何编写正确的“退出”按钮。我有几行代码,这是我在网上搜索解决方案后尝试创建的退出按钮,但我似乎仍然缺少一些东西 有相当多的代码,但我将粘贴在这里。我感谢您的建议或反馈:)python中的tkinter计算器,python,user-interface,tkinter,ttk,Python,User Interface,Tkinter,Ttk,我对tkinter和python都是新手,我正在尝试创建一个GUI窗口来计算约会之夜的总成本,并提供不同的旅行、娱乐等选项。我有两个主要问题: 1.如果用户试图输入提示,则不会发生任何事情。不过,只要用户不想留下餐馆小费,这个程序就可以工作。我尝试过重新格式化,但我似乎不明白为什么我的技巧编码方式不起作用。仅当选择了餐厅选项时,才应添加小费。 2.这个错误可能相对简单,但我不知道如何编写正确的“退出”按钮。我有几行代码,这是我在网上搜索解决方案后尝试创建的退出按钮,但我似乎仍然缺少一些东西 有相
另外,我为我在文章中的怪异评论道歉。我删除了其中的大部分,但是当我做这个的时候我很累,我觉得一切都很有趣 当我运行代码时,我会看到一条错误消息,其中显示了问题所在和问题所在。你应该读一读,想想这行有什么错。您还应该添加此有问题的错误消息
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.7/tkinter/__init__.py", line 1705, in __call__
return self.func(*args)
File "<pyshell#1>", line 14, in calc_cost
before_tax = travel_result.get() + entertainment_result.get() + dinner_result.get + ((int(tip_result.get()) / 100) * dinner_result)
TypeError: unsupported operand type(s) for +: 'int' and 'method'
在这一行中,您忘记了第一个晚餐结果中的()
,第二个晚餐结果中忘记了.get()
应该是
before_tax = travel_result.get() + entertainment_result.get() + dinner_result.get() + ((int(tip_result.get()) / 100) * dinner_result.get())
现在它显示了Restarunt
至于按钮
Quit
-您忘记了应用程序窗口中的()
。destroy()
如果我没弄错的话,你可以为你的提示做一个监听器,当值改变时,它会调用一些函数。可以帮你忘记晚餐结果中的
()
。获取。我不明白您在((int(tip\u result.get())/100)*晚餐结果中尝试如何处理晚餐结果-当我在控制台/终端中运行代码时,可能您忘记了.get()
,然后我看到错误消息。你没看见吗?始终将完整的错误消息(从单词“Traceback”开始)作为文本(而不是屏幕截图)进行讨论(不是评论)。还有其他有用的信息。不要以为我们会运行代码来查看您的错误消息。我很后悔没有早点看到这些。正如我所说,我对python非常陌生,所以我不太擅长解释错误消息。我感谢你抽出时间向我指出这一点。另外,我并不总是理解何时使用(),所以这会给我带来很多问题。()
用于运行函数。只有在程序需要函数名以后运行时,有时才需要使用函数名而不使用()
,它被称为回调
。在tkinter
中,它位于command=callback
,.bind(事件,回调)
和root.after(毫秒,回调)
before_tax = travel_result.get() + entertainment_result.get() + dinner_result.get + ((int(tip_result.get()) / 100) * dinner_result)
before_tax = travel_result.get() + entertainment_result.get() + dinner_result.get() + ((int(tip_result.get()) / 100) * dinner_result.get())
def close_window():
app_window.destroy()