我需要用提交按钮将数据发送到脚本

时间:2015-08-20 15:24:45

标签: python tkinter

我正在构建一个python GUI,我有两个文本框。

我想创建一个提交按钮,该按钮将从这两个文本框中获取数据并将其发送到start(save_place, website_url)函数。

这是我到目前为止所得到的:

from Tkinter import *

def start(save_place, website_url):
    #something

app = Tk()
top_app = Frame(app)
top_app.pack()
save_location = Entry(top_app, width=20)
url = Entry(top_app, width=20)
save_location.grid(sticky=W, row=0)
url.grid(sticky=W, row=1)
save_place = save_location.get("1.0", END)
website_url = url.get("1.0", END)
button_start = Button(top_app, text="Start", fg="green", command=start(save_place,website_url))
button_start.grid(sticky=W, row=2, pady=20)
app.mainloop()

我也试过这个:

from Tkinter import *

def start():
    save_place = save_loc.get()
    website_url = urls.get()
    print (save_place + " " + website_url)

app = Tk()
top_app = Frame(app)
top_app.pack()
save_loc = StringVar()
save_location = Entry(top_app, textvariable=save_loc, width=85)
urls = StringVar()
url = Entry(top_app, textvariable=urls, width=85)
button_start = Button(top_app, text="Start", fg="green", command=start)
button_start.grid(sticky=W, row=2, pady=20)
app.mainloop()

它不起作用。

如何让此脚本将文本框中的输入发送到函数?

感谢所有帮助者:)

2 个答案:

答案 0 :(得分:1)

command=start(save_place,website_url)没有按照您的想法行事。它将函数调用的结果分配给命令。 (可能是None)。将Entry框绑定到StringVar,如:

location = StringVar()
Entry(top_app, textvariable=location, width=20)

然后使用command = start将函数调用分配给命令参数。在函数内部,您可以使用Entry访问location.get()中的值。要设置值,请使用相应的方法location.set(value)

答案 1 :(得分:1)

如前一个回复中提到的“关于如何调用函数”,你只需要command = start并将save_place = save_location.get() 放入start函数中,但是你可以使用{{ 1}},所以总prg:

save_location = Entry(top_app, width=20)