如何在Python Tkinter中通过代码更新绑定Entry控件的StringVar值
Tkinter Entry输入框内容主动更新方案
你可以通过两种方式实现输入框内容的主动更新,具体实现如下:
方式一:通过绑定的StringVar更新(推荐)
因为你已经给Entry组件绑定了title_text这个StringVar对象,直接调用该对象的set()方法即可自动同步更新Entry的显示内容,无需额外操作组件。
修改你的get_command函数示例:
def get_command(): #getting data from internet isbn_data = isbn_text.get() isbn_ret=(registry.bibformatters['labels'](meta(isbn_data))) isbn_ret1 = (isbn_ret.splitlines()) # 处理得到书名 book_title = isbn_ret1[1].strip() # 直接更新绑定的StringVar,Entry会自动同步显示 title_text.set(book_title)
方式二:直接操作Entry组件更新
如果你不想通过StringVar操作,也可以直接调用Entry组件的两个原生方法实现内容更新:
- 先调用
delete()方法清空输入框现有内容 - 再调用
insert()方法插入新内容
代码示例:
def get_command(): #getting data from internet isbn_data = isbn_text.get() isbn_ret=(registry.bibformatters['labels'](meta(isbn_data))) isbn_ret1 = (isbn_ret.splitlines()) # 处理得到书名 book_title = isbn_ret1[1].strip() # 直接操作Entry组件更新内容 e1.delete(0, tk.END) # 从第0位到末尾全量清空 e1.insert(0, book_title) # 从第0位开始插入新书名
注意事项
需要保证title_text或者e1在get_command函数的作用域内可访问,如果出现未定义报错,可以将这两个变量声明为全局变量,或者将相关逻辑封装到类中作为实例属性使用。
内容的提问来源于stack exchange,提问作者Harold Meneley
相关产品推荐
相关产品推荐

