使用tkin时的动态内存分配

2024-09-30 10:29:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,似乎是一个动态分配内存。(这有点难以解释,所以请耐心听我说。)

使用tkinter、PythonWin和Python2.6。 我已经编写了一个程序,用户可以添加多行和多列的选项菜单小部件,每个菜单有数百个选择。一旦创建了所需的所有行和列,就可以将所有选择保存到一个文件中。重新打开该工具时,可以选择读入数据文件以重新创建以前选择的所有选项菜单选项。当重新创建选项菜单选项的这些行和列时,该工具工作得非常好,除非行的数量非常大(比如超过200行–尽管200行没有什么神奇之处)。 当重建过程将另一个选项菜单“附加”到不断增加的选项菜单列表时,该工具崩溃。你知道吗

下面是如何将选项菜单小部件添加到列表的示例:

self.omPlaces = []
for i in range(len(numberOfRows)):
    self.omPlaces.append(OptionMenu(self.frame, self.placesVar[i], *self.placesList, command = lambda widgObj=self.omPlaces,quad=(i*4)+2, arg3=True, arg4=True:self._displayProperWidget(widgObj,quad,arg3,arg4)))
    self.omPlaces[i].config(width=120, font=('Arial', 9), activebackground='ghost white', disabledforeground="gray80", indicatoron=0, compound='right', image=self.arrow)
    self.omPlaces[i].grid(row=nextRow, padx=2, column=3)

我的问题是:有没有一种方法可以处理一个程序的内存,可以增长非常大,比如说高达1GB?(不是文件输出,而是自扩展GUI本身。)我不认为可以预先构建这些列表,因为有一些独特的参数要传递给'command=lambda'等等。。。你知道吗


Tags: 文件工具lambdaself程序列表部件选项

热门问题