无法在 Tkinter GUI 的 Entry 小部件中显示值
Unable to to show value in Entry widget in Tkinter GUI
在此 GUI 应用程序中,simpleapp 是主要的 window。作为初始化 simpleapp 的一部分,我试图设置应用程序的主目录,使用 class setHomeDir 打开 window 以便我可以确认/设置当前工作目录。首先,我无法让当前工作目录显示在 setHomeDir window 中,即我无法让 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() 的多个实例。当有多个实例时它会变得混乱,因此请改用 Toplevel。
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()
在此 GUI 应用程序中,simpleapp 是主要的 window。作为初始化 simpleapp 的一部分,我试图设置应用程序的主目录,使用 class setHomeDir 打开 window 以便我可以确认/设置当前工作目录。首先,我无法让当前工作目录显示在 setHomeDir window 中,即我无法让 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() 的多个实例。当有多个实例时它会变得混乱,因此请改用 Toplevel。
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()