我想创建一个简单的程序来计算多个项目和总额。只有第一行项目计算有效,但我需要创建5个带有行和条目小部件的项目,我已经创建了第二行,但计算错误即将到来。。
抱歉我的英语不好
代码是
from tkinter import *
def mul(event):
a=float(t1.get())
b=float(t2.get())
c=a*b
t3.insert(0,c)
g=float(v1.get())
h=float(v2.get())
i=g*h
v3.insert(0,c)
win=Tk()
win.geometry('850x450')
l1=Label(win,text="SL")
l1.grid(row=1,column=0)
l2=Label(win,text="price")
l2.grid(row=0,column=1)
l3=Label(win,text="Qty/Kgs")
l3.grid(row=0,column=2)
l4=Label(win,text="Amount")
l4.grid(row=0,column=3)
l5=Label(win,text="DR")
l5.grid(row=2,column=0)
t1=Entry(win)
t1.grid(row=1,column=1)
t2=Entry(win)
t2.grid(row=1,column=2)
t3=Entry(win)
t3.grid(row=1,column=3)
v1=Entry(win)
v1.grid(row=2,column=1)
v2=Entry(win)
v2.grid(row=2,column=2)
v3=Entry(win)
v3.grid(row=2,column=3)
t2.bind('<Return>',mul)
v2.bind('<Return>',mul)
win.mainloop()
错误为
Exception in Tkinter callback
Traceback (most recent call last):
File "C:UsersgoddeAppDataLocalProgramsPythonPython38-
32libtkinter__init__.py", line 1883, in __call__
return self.func(*args)
File "calc11.py", line 3, in mul
a=float(t1.get())
ValueError: could not convert string to float: ''
提前感谢
这里的错误可能是一个逻辑错误。试着说v3.insert(0,i)
而不是v3.insert(0,c)
。但是GUI似乎仍然非常缺乏。如果你想改进功能,就来吧。
from tkinter import *
count = 0
def mul(event):
global count
count += 1
if count > 1:
t3.delete(0,END)
a=float(t1.get())
b=float(t2.get())
c=a*b
t3.insert(0,c)
def mul2(event):
global count
count += 1
if count > 1:
v3.delete(0,END)
g=float(v1.get())
h=float(v2.get())
i=g*h
v3.insert(0,i)
win=Tk()
win.geometry('850x450')
l1=Label(win,text="SL")
l1.grid(row=1,column=0)
l2=Label(win,text="price")
l2.grid(row=0,column=1)
l3=Label(win,text="Qty/Kgs")
l3.grid(row=0,column=2)
l4=Label(win,text="Amount")
l4.grid(row=0,column=3)
l5=Label(win,text="DR")
l5.grid(row=2,column=0)
t1=Entry(win)
t1.grid(row=1,column=1)
t2=Entry(win)
t2.grid(row=1,column=2)
t3=Entry(win)
t3.grid(row=1,column=3)
v1=Entry(win)
v1.grid(row=2,column=1)
v2=Entry(win)
v2.grid(row=2,column=2)
v3=Entry(win)
v3.grid(row=2,column=3)
t2.bind('<Return>',mul)
v2.bind('<Return>',mul2)
win.mainloop()
我分别在两个不同的条目小部件上使用了绑定,因此更容易减少空字符串错误。
希望它能有所帮助。
干杯