python - 使用 tkinter,如何解决 python 中第二个按钮导致第二个按钮无法正确显示的问题
问题描述
我想使用 tkinter 创建一个简单的计算系统。首先用户需要输入金额,有 3 个第一行按钮和 2 个第二行按钮。用户输入他们的值后,然后单击包含值 4、8 和 12 的任何第一行按钮。用户输入的数量将乘以第一个按钮中包含的值。然后第一个按钮的结果将乘以第二行按钮。然后最终结果将显示在底部。问题是在第二行按钮中,我无法正确显示结果,我尝试在第二个按钮功能中使用 if 语句,但它不起作用。大家有什么想法可以帮我解决的麻烦分享一下,谢谢
这里的代码供您参考
from tkinter import *
root = Tk()
root.title("Calculation")
e = Entry(root, width = 35, borderwidth = 5)
e.grid(column=0,row=0,columnspan=3, padx = 10,pady=10)
res = Entry(root, width = 35, borderwidth = 5)
res.grid(row = 4, column = 0, columnspan = 3, padx = 10, pady=10)
def multi_4(number):
duration= int(e.get())*number
global f_num1
global current_number
current_number = duration
f_num1 = duration
res.delete(END)
res.insert(0,duration)
def multi_8(number):
duration= int(e.get())*number
global f_num2
global current_number2
current_number2 = duration
f_num2 = duration
res.delete(0,END)
res.insert(0,duration)
return duration
def multi_12(number):
duration= int(e.get())*number
global f_num3
global current_number3
current_number3 = duration
f_num3 = duration
res.delete(0,END)
res.insert(0,duration)
return duration
def multi_52(number):
res.delete(0,END)
res.insert(0, f_num1 * number)
res.insert(0,f_num2 * number)
res.insert(0, f_num3 * number)
def multi_12i(number, duration):
total = duration * number
res.delete(0,END)
res.insert(0,total)
button_1 = Button(root, text="4 (2024)", padx =40, pady =20, command=lambda: multi_4(4))
button_2 = Button(root, text="8 (2028)", padx =40, pady =20, command=lambda: multi_8(8))
button_3 = Button(root, text="12 (2032)", padx =40, pady =20, command=lambda: multi_12(12))
button_4 = Button(root, text="52 Weeks", padx =40, pady =20, command=lambda: multi_52(52))
button_5 = Button(root, text="12 Months", padx =40, pady =20, command=lambda: multi_12i(12))
#put the button on the screen
button_1.grid(row = 1 , column=0)
button_2.grid(row = 1 , column=1)
button_3.grid(row = 1, column=2)
button_4.grid(row = 2, column=0)
button_5.grid(row = 2, column=2)
root.mainloop()
解决方案
推荐阅读
- c - 使用 vcpkg 为头文件安装库函数
- java - 如果我在方法中“抛出新的错误()”,在方法声明中追加和不追加“抛出错误”有什么区别?
- python - 根据python中的最近值合并2个数据框
- java - 在 Twilio 消息正文中包含的不是英文文本,它被替换为?
- python - 我需要从使用框架的网站上抓取数据
- ios - 如何更新已经呈现的上下文菜单中的值?
- php - 通过 Collection 访问 hasMany 关系函数
- jdbc - 使用 Jmeter JDBC 请求对 H2 数据库进行性能测试的问题
- r - Plotly scatterternary - 连续色彩美学的问题
- c++ - C++ 初始化/预初始化/fini 数组