我正在构建一个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()
它不起作用。
如何让此脚本将文本框中的输入发送到函数?
感谢所有帮助者:)
答案 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)