Python如何将Tkinter GUI输入框的内容赋值给url变量?
问题解决说明
你的实现整体思路没问题,只需要调整两个核心点即可实现需求:
- Tkinter的
window.mainloop()是事件阻塞循环,窗口运行期间其后方的代码不会执行,因此不能将url变量的定义放在mainloop()之后 - 你可以直接在按钮点击的回调函数里获取输入框内容赋值给
url,同时把后续用到url的逻辑都放到回调函数内执行即可
修正后完整代码示例
from tkinter import * # 全局存储url的变量(如果需要跨函数使用可以定义) url = "" # GUI初始化 window = Tk() # 修正原代码中title的错误写法 window.title("scraper") window.geometry('400x200') def button_command(): global url # 从输入框获取内容赋值给url url = entry1.get().strip() print(f"已获取到输入的URL:{url}") # 后续需要用到url的逻辑都可以放在这里执行,比如爬虫请求等 # 示例:发起请求可直接写 requests.get(url) 这类逻辑即可 entry1 = Entry(window, width=20) entry1.pack() Button(window, text="确认输入URL", command=button_command).pack() window.mainloop() # 如果一定要在窗口关闭后使用url,代码写在此处才会生效 # print(f"窗口关闭后获取的url:{url}")
关键修改说明
- 修正了原代码中
window.title = ("scraper")的语法错误,正确写法是window.title("scraper") - 用
global关键字声明全局的url变量,确保回调函数内的赋值可以作用到函数外部 - 所有依赖
url的业务逻辑都可以直接放在button_command函数内,用户点击按钮后就会自动用输入的内容执行后续操作
内容的提问来源于stack exchange,提问作者Sirico
相关产品推荐
相关产品推荐

