如何将计算表单按钮命令传递到输入字段?
问题描述:
我有两个Python脚本mainapp.py,和calculations.py如何将计算表单按钮命令传递到输入字段?
- mainapp.py
from tkinter import * import calculations root = Tk() mainapp = Frame(root) mainapp.grid() label1 = Label(mainapp, text="Value A") label1.grid(row=0, column=0) value_a = IntVar() entry1 = Entry(mainapp, textvariable=value_a) entry1.grid(row=0, column=1) label2 = Label(mainapp, text="Value B") label2.grid(row=1, column=0) value_b = IntVar() entry2 = Entry(mainapp, textvariable=value_b) entry2.grid(row=1, column=1) button = Button(mainapp, text="Calculate", command=calculations.addvalues(a=value_a.get(), b=value_b.get())) button.grid(row=2, columnspan=2) label3 = Label(mainapp, text="A+B") label3.grid(row=3, column=0) value_c = IntVar() entry3 = Entry(mainapp, textvariable=value_c) entry3.grid(row=3, column=1) root.mainloop()
- calculations.py
def addvalu es(a,b): return a + b
我想通过按钮命令计算到entry3字段。怎么做?
感谢您提前给予帮助。
答
你做得非常好,非常接近。通常使用一个简单的函数(参见我的例子中的foo())来操纵输入框等等更好。
entry3.delete(0,END)将确保条目清晰看看会发生什么!)
from tkinter import *
import calculations
def foo():
x = addvalues(a=value_a.get(), b=value_b.get())
entry3.delete(0, END)
entry3.insert(END, x)
root = Tk()
mainapp = Frame(root)
mainapp.grid()
label1 = Label(mainapp, text="Value A")
label1.grid(row=0, column=0)
value_a = IntVar()
entry1 = Entry(mainapp, textvariable=value_a)
entry1.grid(row=0, column=1)
label2 = Label(mainapp, text="Value B")
label2.grid(row=1, column=0)
value_b = IntVar()
entry2 = Entry(mainapp, textvariable=value_b)
entry2.grid(row=1, column=1)
button = Button(mainapp, text="Calculate",
command=foo)
button.grid(row=2, columnspan=2)
label3 = Label(mainapp, text="A+B")
label3.grid(row=3, column=0)
value_c = IntVar()
entry3 = Entry(mainapp, textvariable=value_c)
entry3.grid(row=3, column=1)
root.mainloop()
您是否尝试过使用'insert()'发送计算结果到输入字段? 'entry_field.insert(“end”,calc_results)'请记住,您可能需要首先执行'entry_field.delete(“0”,“end”),以便为每个新插入保留字段清除。 –