Python 如何在tkinter中添加第二行?
我需要用计算功能将第二行添加到第一行。在这段代码中怎么做Python 如何在tkinter中添加第二行?,python,tkinter,Python,Tkinter,我需要用计算功能将第二行添加到第一行。在这段代码中怎么做 import tkinter as tk root = tk.Tk() root.geometry('850x450') var1 = tk.StringVar() t1 = tk.Entry(root, textvariable=var1).grid(row=1,column=1) var2 = tk.StringVar() t2 = tk.Entry(root, textvariable=var2).grid(row=1,colu
import tkinter as tk
root = tk.Tk()
root.geometry('850x450')
var1 = tk.StringVar()
t1 = tk.Entry(root, textvariable=var1).grid(row=1,column=1)
var2 = tk.StringVar()
t2 = tk.Entry(root, textvariable=var2).grid(row=1,column=2)
result = tk.StringVar()
l = tk.Label(root, textvariable=result).grid(row=1,column=3)
N = 3 # number of decimals that you want
def set_label(name, index, mode):
if var1.get() == '' or var2.get() == '':
pass
else:
res = float(var1.get()) * float(var2.get())
result.set('{number:.{digits}f}'.format(number=res, digits=N))
var1.trace('w', set_label)
var2.trace('w', set_label)
root.mainloop()
提前感谢…如果要创建多行小部件,可以创建一个数组来存储小部件引用,并使用循环在网格中创建小部件
import tkinter as tk
root = tk.Tk()
root.geometry('850x450')
lstentry = [] # all entries
lstlabel = [] # all labels
for ctr in range(5): # 5 rows
var1 = tk.StringVar()
t1 = tk.Entry(root, textvariable=var1).grid(row=ctr+1,column=1)
var2 = tk.StringVar()
t2 = tk.Entry(root, textvariable=var2).grid(row=ctr+1,column=2)
result = tk.StringVar()
result.set('label ' +str(ctr+1))
l = tk.Label(root, textvariable=result).grid(row=ctr+1,column=3)
lstentry.append(var1)
lstentry.append(var2)
lstlabel.append(l)
N = 3 # number of decimals that you want
def set_label(name, index, mode):
if var1.get() == '' or var2.get() == '':
pass
else:
res = float(var1.get()) * float(var2.get())
result.set('{number:.{digits}f}'.format(number=res, digits=N))
var1.trace('w', set_label)
var2.trace('w', set_label)
root.mainloop()
输出
将行创建逻辑分离到功能
添加行(行编号)
:
你能说得更具体些吗?您想在何处添加行以及尝试添加行时出现的问题。在这段代码中如何使用treeview插入函数我想使用这段代码列表框。插入(“”,'end',values=('name',var1.get(),var2.get(),result.get())请提供任何建议。。
import tkinter as tk
root = tk.Tk()
root.geometry('850x450')
def add_row(row_number):
var1 = tk.StringVar()
t1 = tk.Entry(root, textvariable=var1).grid(row=row_number,column=1)
var2 = tk.StringVar()
t2 = tk.Entry(root, textvariable=var2).grid(row=row_number,column=2)
result = tk.StringVar()
l = tk.Label(root, textvariable=result).grid(row=row_number,column=3)
N = 3 # number of decimals that you want
def set_label(name, index, mode):
if var1.get() == '' or var2.get() == '':
pass
else:
res = float(var1.get()) * float(var2.get())
result.set('{number:.{digits}f}'.format(number=res, digits=N))
var1.trace('w', set_label)
var2.trace('w', set_label)
NUMBER_OF_ROWS = 10
for row_number in range(1, NUMBER_OF_ROWS+1):
add_row(row_number)
root.mainloop()