有没有一种方法可以从Python用户界面中创建的变量中保存输入(浮动)?

时间:2020-01-02 15:13:01

标签: python tkinter

我一直在尝试使用Python创建一个用户界面(通过使用tkinter),以保存您输入的数字。在这种情况下,我希望用户能够给出测量的起始值和终止值,然后将其用代码实现。为此,我需要用户界面能够存储我输入的值。但是,到目前为止,我还无法导出具有指定值的变量。我只设法获得了值为0的变量。 有人可以帮我弄清楚我的错误吗?预先感谢!

这是我使用的代码:

import tkinter as tk
import tkinter.messagebox

root = tk.Tk()
tk.Label(root, text = "Start of measurement (index): ")
tk.Label(root, text = "End of measurement (index): ")

def add_text():
       label1 = tk.Label(root, text="You have entered the start and end index of the measurement")
       label1.pack()



Start = tk.DoubleVar(root)
End = tk.DoubleVar(root)

Start_measurement = Start.get()
End_measurement = End.get()

Start_label = tk.Label(root, text="Start of measurement (index): ")
Start_label.pack()

Start_text_box = tk.Entry(root, bd=1)
Start_text_box.pack()

End_label = tk.Label(root, text="End of measurement (index): ")
End_label.pack()

End_text_box = tk.Entry(root, bd=1)
End_text_box.pack()

enter_button = tk.Button(root, text="Enter", command=add_text)
enter_button.pack()


root.mainloop()

2 个答案:

答案 0 :(得分:1)

在您的add_text函数中,您可以首先获取文本框的字符串:

val1 = Start_text_box.get()

然后将其转换为两倍:

val1 = float(val1)

然后打印

label1 = tk.Label(root, text="You have entered the start {0} and end index of the measurement".format(val1))

答案 1 :(得分:1)

它将是变量= Start_text_box.get()或变量= End_text_box.get()。

还需要关闭窗口以供以后在代码中使用

root.quit()
root.withdraw()

例如:

def add_text():
    globals()['START']=Start_text_box.get()
    globals()['END']=End_text_box.get()
    print("Start was ", START)
    print("End was ", END)
    root.quit()
    root.withdraw()

之所以有globals()是因为START / END变量是在局部函数中定义的,因此要在其他地方使用它们,您需要全局分配它们。