我需要从窗口中的一个条目中获取一些输入值,但是每次我回到窗口时,我都需要将这些值保存在entry小部件中。我写了这样一个代码:
class Mainwindows:
def __init__(self, master):
self.master = master
self.mainframe = LabelFrame(self.master)
self.sinputbutton = Button(self.mainframe, text="INPUT", command=self.openinput)
self.sinputbutton.pack()
def openinput(self):
self.inputwindow = Toplevel(self.master)
self.app = Sinput(self.inputwindow)
class Sinput:
def __init__(self, master):
self.master = master
self.inputframe = Frame(self.master)
self.stuffinput = DoubleVar()
self.stuffinput = Entry(self.inputframe, textvariable=self.stuffinput)
self.stuffinput.pack()
self.okbutton = Button(self.inputframe, text="Ok", command=self.inputok)
self.soilbutton.pack(side="right", padx=5, pady=10)
self.inputframe.pack()
def inputok(self):
global f
f = self.stuffinput.get()
self.master.destroy()
所以我把输入输入到输入中,然后按下OK按钮,此时变量f被存储,输入窗口关闭,但是如果我设法返回到输入窗口,值正好是0,我需要它保持为我最初写的值!在
更新的代码
^{pr2}$与之前一样,我需要存储通过输入窗口中的两个entrywidgets创建的变量,因为我稍后将需要这些值,如果我决定回来进一步查看,还需要在输入窗口中显示这些值!在
你遇到的主要问题是你破坏了这个窗口,然后每按一次按钮就创建一个新窗口。{cd1>在下面的示例中,{cd1>中有。这样就不会每次都被摧毁。但是,每次创建一个新窗口时,它将使用相同的
DoubleVar
,因此每个条目小部件都将显示它所保存的当前值。在现在,虽然您可以在
DoubleVar
上使用global在类之间使用它。在使用类时,我宁愿远离它。要在没有全局变量的情况下执行此操作,只需传入变量。在另外,如果您希望一个消息框获取用户输入并返回值,而不是创建自己的值,那么您还可以考虑
tkinter.simpledialog.askstring
。在相关问题 更多 >
编程相关推荐