0

嘿,这个标题一定听起来很可怕而且很无聊

无论如何,我正在开发一个基本上是迷宫的简单网页游戏。要制作地图,我必须手动编写墙壁的坐标,我认为如果我制作地图编辑器会大大加快开发过程。我首先想到的是 python 的 tkinter 生成了一个组合框网格。

网格生成得很好,但我在导出“地图”时遇到了问题。我认为每个组合框都必须有一个唯一的文本变量和一种检查它的坐标的方法。如果我将变量的名称设置为其坐标,我想我会解决这两个问题,但我认为它不起作用,我不知道以后如何访问这些值。这是代码的重要部分(很抱歉没有立即显示所有内容,但是在发布 python 时 StackOverflow 的格式很糟糕):

def scale(self, *args, **kwargs):
    self.width.set(self.setwidth.get())
    self.height.set(self.setheight.get())
    name=[0,0]
    while name[0]<=(self.width.get() - 1) and name[1]<=self.height.get():
        n=(str(name[0]) + ',' + str(name[1]))
        o={'name': n}
        self.o['name']=tk.StringVar()
        self.n=ttk.Combobox(self, textvariable=o['name'], values=('F', 'W', 'V', 'S'), width=1, state='readonly')
        self.n.grid(column=name[0], row=(name[1] + 1))
        self.n.set('V')
        print self.o['name'].get()
        if name[0]==(self.width.get() - 1) and name[1]<self.height.get():
            name[0]=0
            name[1]=name[1]+1
        else:
            name[0]=name[0]+1
    self.update()

上面的代码给了我App instance has no attribute 'o'......我能做些什么呢?甚至可以做到吗?

谢谢!

4

1 回答 1

0

看来,当您编写self.o['name'], self(我假设是有App问题的实例)时,还没有被赋予o属性。

我怀疑在那之前的那一行,你写的地方o={'name': n},你真的是想写self.o={'name': n},这将解决这个直接的问题。

于 2013-08-16T13:50:15.783 回答