如何将计算表单按钮命令传递到输入字段?

问题描述:

我有两个Python脚本mainapp.py,和calculations.py如何将计算表单按钮命令传递到输入字段?

  1. 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() 
  1. calculations.py
  2. def addvalu es(a,b): return a + b

    我想通过按钮命令计算到entry3字段。怎么做?

    感谢您提前给予帮助。

开始=>
+1

您是否尝试过使用'insert()'发送计算结果到输入字段? 'entry_field.insert(“end”,calc_results)'请记住,您可能需要首先执行'entry_field.delete(“0”,“end”),以便为每个新插入保留字段清除。 –

你做得非常好,非常接近。通常使用一个简单的函数(参见我的例子中的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()