Python 如何在Tkinter中编写类似HTML的文件名字段?
我正在制作一个自动生成的Tkinter GUI(类似于HTML表单),并尝试制作一个HTML使用的文件名字段。 这是我的密码:Python 如何在Tkinter中编写类似HTML的文件名字段?,python,tkinter,ttk,getopenfilename,Python,Tkinter,Ttk,Getopenfilename,我正在制作一个自动生成的Tkinter GUI(类似于HTML表单),并尝试制作一个HTML使用的文件名字段。 这是我的密码: e = ttk.Entry(master) e.grid(row=ROW, column=1) b = ttk.Button(master, text="...") b.grid(row=ROW, column=2, sticky=tkinter.E) 我希望这样,当用户单击…按钮时,会弹出一个文件名对话框(我知道如何执行该部分),当用户选择一个文件时,它会反映在条目
e = ttk.Entry(master)
e.grid(row=ROW, column=1)
b = ttk.Button(master, text="...")
b.grid(row=ROW, column=2, sticky=tkinter.E)
我希望这样,当用户单击…
按钮时,会弹出一个文件名对话框(我知道如何执行该部分),当用户选择一个文件时,它会反映在条目中(这是我遇到问题的部分)。
我在这方面遇到问题的原因是E和B不断变化,因为这是在一个循环中运行的,所以我认为唯一可行的方法是使用行检测器,并以某种方式更改输入框的值。我该怎么做
提前谢谢!如果有任何不清楚的地方,请告诉我。最好的解决方案之一是创建自己的小部件作为一个类。大概是这样的:
class MyWidget(self, tkinter.Frame):
def __init__(self, *args, **kwargs):
tkinter.Frame.__init__(self, *args, **kwargs)
self.entry = tkinter.Entry(self)
self.button = tkinter.Button(self, text="...",
command=self._on_button)
self.button.pack(side="right")
self.entry.poack(side="left", fill="both", expand=True)
def _on_button(self):
s = <call whatever dialog you want...>
if s != "":
self.entry.delete(0, "end")
self.entry.insert(0, s)
...
entry = MyWidget(master)
entry.grid(...)
...
类MyWidget(self,tkinter.Frame):
定义初始化(self,*args,**kwargs):
tkinter.Frame.\uuuu init\uuuu(self,*args,**kwargs)
self.entry=tkinter.entry(self)
self.button=tkinter.button(self,text=“…”,
命令=自身。_打开按钮)
自助式按钮包(side=“right”)
self.entry.poack(side=“left”,fill=“both”,expand=True)
def_开启按钮(自身):
s=
如果s!="":
self.entry.delete(0,“结束”)
self.entry.insert(0,s)
...
entry=MyWidget(主程序)
entry.grid(…)
...
“我在这方面遇到问题的原因是E和B不断变化,因为这是在循环中运行的”。详细说明?听起来您应该将e
和b
放在class.e和b中,作为存储条目和按钮的变量。他们已经在上课了。我该怎么处理它们?它们是如何不断变化的?你重新创建它们吗?是的,这是一个循环。我可以使用字典来存储它们,但我的问题是,即使我可以访问它们的副本,我如何更改屏幕上的值?拷贝对我没有多大好处,因为我需要真实的东西来改变它。