0

へー、タイトルは恐ろしくて野蛮に聞こえるに違いない

とにかく、私は基本的に迷路である単純な Web ゲームに取り組んでいます。マップを作るには壁の座標を手書きで書く必要があり、マップエディタを作れば開発プロセスが大幅にスピードアップすると思いました。最初に頭に浮かんだのは、コンボ ボックスのグリッドを生成する 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 に答える