【发布时间】:2015-05-31 17:16:08
【问题描述】:
我正在制作一个程序,该程序将有一个接收两个输入的框,一个事件名称和为该事件分配的时间,稍后将输出已添加的所有事件的列表。这是输入框的类:
class agendaEvent:
def __init__(self, master):
self.frame = Frame(master, padx=10, pady=10)
self.frame.grid()
self.name = Entry(self.frame)
self.name.grid(row=1, column=0)
self.time = Entry(self.frame, width=10)
self.time.grid(row=1, column=1, padx=5)
我对编程很陌生,但我相信存储name 和time 的正确方法是在字典中。
可能有多个类的实例同时运行,并且在这些实例已经存储之后可以运行更多。最好将它们全部存储在同一个字典中。
但是,我不知道如何将self 变量存储在以后可以在课堂外访问的字典中。这可能吗?如果是这样,怎么做?如果没有,我如何以可以在单独的函数中访问的方式存储变量?
编辑:这是复制我的问题所需的最少代码(我认为):
from Tkinter import *
from functools import partial
class agendaEvent:
def __init__(self, master):
self.frame = Frame(master, padx=10, pady=10)
self.frame.grid()
self.name = Entry(self.frame)
self.name.grid(row=1, column=0)
self.time = Entry(self.frame, width=10)
self.time.grid(row=1, column=1, padx=5)
self.label1 = Label(self.frame, text="Event Name")
self.label1.grid(row=0, column=0)
self.label2 = Label(self.frame, text="Minutes")
self.label2.grid(row=0, column=1)
def addOne(master):
this_instance = agendaEvent(master)
def addEvent():
window = Toplevel()
addOneButton = Button(window, text='+1', command=partial(addOne, window))
addOneButton.grid(row=0, column=0, pady=5)
doneButton = Button(window, text='Done', command=partial(done, window))
doneButton.grid(row=1, column=0, pady=3)
def done(windowInstance):
#This is where I was thinking
#the code for storing information
#should be because it should store
#when the done button is pressed.
#This may not be a good way to do it,
#I don't know.
windowInstance.destroy()
windowInstance = ""
root = Tk()
addEventButton = Button(root, text="Add Events", command=addEvent)
addEventButton.pack()
root.mainloop()
【问题讨论】:
-
@jonrsharpe 姓名和时间。目前阻碍我的是我缺乏知识。我不知道如何制作一个字典来存储所有议程事件实例的名称和时间,然后我可以稍后在脚本中的单独函数中访问它。首先,字典是解决这个问题的正确方法吗?如果是这样,那么具体如何做到这一点?
-
也许google.com/… 会是开始的地方? ;-)
-
@boardrider 我试图搜索但找不到答案。我的大部分问题我都可以用谷歌解决,但对于那些我无法通过搜索找到的问题,我会来到这里。当我在这里找不到它时,我会发布自己的帖子,希望有人知道如何帮助我。
-
@jonrsharpe 我的最终目标是拥有一个带有主列表的主窗口,并在侧窗口中打开课程议程事件。然后,用户将选择他们希望添加的事件的数量,并为每个事件键入名称和时间。然后他们将单击完成按钮,在主窗口中,主列表将显示他们添加的所有事件。按下完成按钮时,侧窗也会关闭。除了能够将在侧窗口中输入的信息传输到主窗口的主列表之外,我几乎拥有一切。有没有更好的方法来做到这一点?
-
如果是这样,我很想听听。同样,我是编码新手,我愿意听到任何可以帮助我提高能力并尽可能有效地解决问题的内容。
标签: python class dictionary tkinter