Python 无法在Tkinter GUI的条目小部件中显示值
在这个GUI应用程序中,simpleapp是主窗口。作为初始化simpleapp的一部分,我尝试设置应用程序的主目录,使用setHomeDir类打开一个窗口,以便确认/设置当前工作目录。首先,我无法使当前工作目录显示在setHomeDir窗口中,即我无法使Python 无法在Tkinter GUI的条目小部件中显示值,python,user-interface,tkinter,tkinter-entry,Python,User Interface,Tkinter,Tkinter Entry,在这个GUI应用程序中,simpleapp是主窗口。作为初始化simpleapp的一部分,我尝试设置应用程序的主目录,使用setHomeDir类打开一个窗口,以便确认/设置当前工作目录。首先,我无法使当前工作目录显示在setHomeDir窗口中,即我无法使self.entryVariable.set(home)工作 我哪里出了问题 import Tkinter, os class simpleapp(Tkinter.Tk): def __init__(self,parent):
self.entryVariable.set(home)
工作
我哪里出了问题
import Tkinter, os
class simpleapp(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.geometry('500x300+200+50')
self.home_dir=os.getcwd()
self.t=setHomeDir(parent=self, home=self.home_dir)
class setHomeDir(Tkinter.Tk):
def __init__(self,parent, home):
Tkinter.Tk.__init__(self)
self.parent = parent
self.geometry('500x100+200+50')
self.title('Set Home Directory')
self.grid()
#Input Box
self.entryVariable = Tkinter.StringVar()
self.entry = Tkinter.Entry(self, textvariable=self.entryVariable)
self.entryVariable.set(home)
self.entry.grid(column=0,row=0,sticky='EW')
self.grid_columnconfigure(0,weight=1)
self.resizable(True,False)
if __name__ == "__main__":
app = simpleapp(None)
app.title('Main Window')
app.mainloop()
此外,您不需要Tk()的多个实例。当存在多个实例时,它会变得混乱,因此请改用顶级实例
import Tkinter, os
class SimpleApp():
def __init__(self,parent):
self.parent = parent
self.parent.geometry('500x300+200+50')
self.parent.title('Main Window')
self.home_dir=os.getcwd()
## pass same Tkinter instance to the class
SetHomeDir(parent=self.parent, home=self.home_dir)
class SetHomeDir():
def __init__(self,parent, home):
self.parent = parent
self.top=Tkinter.Toplevel(self.parent)
self.top.geometry('500x100+200+500')
self.top.title('Set Home Directory')
#Input Box
self.entryVariable = Tkinter.StringVar()
self.entry = Tkinter.Entry(self.top, textvariable=self.entryVariable)
self.entryVariable.set(home)
self.entry.grid(column=0,row=0,sticky='EW')
self.entry.focus_set()
self.top.grid_columnconfigure(0,weight=1)
self.top.resizable(True,False)
if __name__ == "__main__":
root=Tkinter.Tk()
app = SimpleApp(root)
root.mainloop()
为什么你不能让它工作?这是一个错误吗?什么错误?您确定问题出在调用self.entryVariable.set(home)时吗?看起来您永远无法访问该行代码,因为您正在使用不存在的变量调用
setHomeDir
。没有错误,只有一个空白文本框,其中需要一个值。我确实相信这一行代码正在实现。例如,如果我查看app.t,则该值存在。i、 e.app.t.entryVariable.get()确实会显示存储为文本的当前目录,您的答案以“还…”开头。你指的是什么?“还”与什么有关?