Python Tkinter输入框(Entry)赋值的问题
这个Demo是为了实现用户选择文件后,文件地址赋值到输入框(Entry)。print可以正常获得文件地址,但赋值到输入框(Entry)报错,AttributeError: 'StringVar' object has no attribute 'insert'
不知道什么原因,请大佬指教。
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
from tkinter import filedialog
class tanZhen:
def __init__(self, root):
# 窗口属性
root.title("探针数据处理")
# 创建组件
mainframe = ttk.Frame(root, padding="50 30")
# 渲染组件
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
# 响应式布局
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
# 探针标签框
ttk.Label(mainframe, text="探针表").grid(row=1, column=0, sticky=W)
# 探针输入框
self.entry_tanzhen = StringVar()
entry_tanzhen = ttk.Entry(mainframe, textvariable=self.entry_tanzhen)
entry_tanzhen.grid(row=1, column=1, sticky=(W, E), padx=10, pady=10)
# 响应式布局
mainframe.columnconfigure(1, weight=1)
# 探针选择按钮
btn_tanzhen = ttk.Button(mainframe, text='选择',
command=self.func_select_file)
btn_tanzhen.grid(row=1, column=2)
def func_select_file(self):
filename = filedialog.askopenfilename()
print(filename)
self.entry_tanzhen.insert(0, 'filename')
root = Tk()
tanZhen(root)
root.mainloop()
用 filedialog 即可,具体方法看看tk文档 搞成全局看了 wuaikirin 发表于 2021-11-17 12:22
用 filedialog 即可,具体方法看看tk文档
你好,我的问题不是获得文件名,我的问题是赋值到输入框。 无闻无问 发表于 2021-11-17 12:27
搞成全局看了
如你所言,全局环境赋值果然没有问题。
但如果想我这样封装写的,就没有办法了吗?有没有解决方案,感谢。 self.entry_tanzhen.set(value=filename)#insert改成 set ReLoading 发表于 2021-11-17 13:29
self.entry_tanzhen.set(value=filename)#insert改成 set
正解,谢谢 cqwcns 发表于 2021-11-17 12:53
你好,我的问题不是获得文件名,我的问题是赋值到输入框。
楼上正解,列表框才有insert方法,文本框只能set
页:
[1]