【发布时间】:2016-06-05 19:34:00
【问题描述】:
我知道这已经被问过很多次了,但我仍然无法让我的代码工作......
我试图在屏幕上显示 7 个下拉列表,并为每个下拉列表选择默认值。我可以让这些框自己显示,并且当您下拉每个框时,我定义的值都在列表中,但是当我的 gui 加载时,我无法将它们默认为任何值。我读了一些关于垃圾收集是一个问题的帖子,所以我按照海报的建议将它放在一个班级中。就是这样……
class DropDown(object):
def __init__(self, parent):
self.parent = parent
def tapoptions(self):
self.box_value = StringVar()
self.box = ttk.Combobox(self.parent, textvariable=self.box_value, state="readonly")
self.box['values'] = ('Empty','Jack','Coke','Tonic')
self.box.current(1)
这全部都放在一个多框架窗口中,我从网上的某个来源复制了它(我现在不记得在哪里),所以我不知道这是否阻碍了我在这里的进步。如果我需要添加更多的代码,我可以,但这里是我的 DropDown 被调用的地方......
class OnTap(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
body = tk.Frame(self)
body.grid(row=1, column=1, sticky="ew")
tappos = [0 for x in range(7)]
for a in range(7):
l = ttk.Label(body, text="Bottle "+str(a+1)+": ")
l.grid(row=a+1, column=0)
tappos[a] = DropDown(body)
tappos[a].tapoptions()
tappos[a].box.grid(row=a+1, column=1)
在某些时候我会将它链接到一个数据库,所以当你加载它时,它会告诉你每个位置的瓶子是什么,但现在,我想做的只是让它显示为“Jack”当您转到该页面时,在每个插槽中,而不是我现在拥有的 [空白]。
我不是一般的编程菜鸟,但在 OOP 方面我是。
另外,我在这里重写了这个,所以如果有你认为可能是问题的错别字,请告诉我,但也有可能我只是抄错了,在这里介绍了这些,而不是我的实际代码。
【问题讨论】: