Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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_Python 3.x_Tkinter_Tkinter Entry - Fatal编程技术网

Python Tkinter多条目窗口小部件计算错误

Python Tkinter多条目窗口小部件计算错误,python,python-3.x,tkinter,tkinter-entry,Python,Python 3.x,Tkinter,Tkinter Entry,我想创建一个简单的程序,用于多项目计算和金额合计。 只有第一行项目计算有效,但我需要创建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())

我想创建一个简单的程序,用于多项目计算和金额合计。 只有第一行项目计算有效,但我需要创建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()

提前感谢

此处的错误可能是逻辑错误。试着说
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()
从tkinter导入*
计数=0
def mul(事件):
全局计数
计数+=1
如果计数>1:
t3.删除(0,结束)
a=浮点(t1.get())
b=浮点(t2.get())
c=a*b
t3.插入(0,c)
def mul2(事件):
全局计数
计数+=1
如果计数>1:
v3.删除(0,结束)
g=浮点(v1.get())
h=浮点(v2.get())
i=g*h
v3.插入(0,i)
win=Tk()
win.geometry('850x450'))
l1=标签(win,text=“SL”)
l1.网格(行=1,列=0)
l2=标签(win,text=“价格”)
l2.网格(行=0,列=1)
l3=标签(win,text=“数量/千克”)
l3.网格(行=0,列=2)
l4=标签(win,text=“金额”)
l4.网格(行=0,列=3)
l5=标签(win,text=“DR”)
l5.网格(行=2,列=0)
t1=进入(win)
t1.网格(行=1,列=1)
t2=进入(赢)
t2.网格(行=1,列=2)
t3=进入(win)
t3.网格(行=1,列=3)
v1=进入(赢)
v1.网格(行=2,列=1)
v2=进入(赢)
v2.网格(行=2,列=2)
v3=进入(win)
v3.网格(行=2,列=3)
t2.绑定(“”,mul)
v2.绑定(“”,mul2)
win.mainloop()
我分别在两个不同的条目小部件上使用绑定,因此更容易减少空字符串错误

希望有帮助


干杯

请更新代码的缩进。Python对缩进非常敏感,Python程序员也是如此。@quamrana缩进看起来很直接,所以我更新了它。不确定OP缩进是否有这种想法既然@CoolCloud已经解决了缩进问题,请用这个
计算错误的详细信息更新问题。无论如何,我猜错误是
v3.insert(0,c)
应该是
v3.insert(0,i)
@CoolCloud:您可能发现了OP尚未遇到的其他错误。我只是专注于OP告诉我的事情。
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()