Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的tkinter计算器_Python_User Interface_Tkinter_Ttk - Fatal编程技术网

python中的tkinter计算器

python中的tkinter计算器,python,user-interface,tkinter,ttk,Python,User Interface,Tkinter,Ttk,我对tkinter和python都是新手,我正在尝试创建一个GUI窗口来计算约会之夜的总成本,并提供不同的旅行、娱乐等选项。我有两个主要问题: 1.如果用户试图输入提示,则不会发生任何事情。不过,只要用户不想留下餐馆小费,这个程序就可以工作。我尝试过重新格式化,但我似乎不明白为什么我的技巧编码方式不起作用。仅当选择了餐厅选项时,才应添加小费。 2.这个错误可能相对简单,但我不知道如何编写正确的“退出”按钮。我有几行代码,这是我在网上搜索解决方案后尝试创建的退出按钮,但我似乎仍然缺少一些东西 有相

我对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()