【问题标题】:How to pass calculation form Button command to Entry field?如何将计算表单按钮命令传递到输入字段?
【发布时间】:2018-03-31 23:33:27
【问题描述】:

我有两个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

def addvalues(a, b): 返回 a + b

我想将 Button 命令计算传递给 entry3 字段。该怎么做?

提前感谢您的帮助。

【问题讨论】:

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

标签: python button tkinter command


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2013-06-14
    • 2017-09-30
    • 1970-01-01
    相关资源
    最近更新 更多