2016-04-17 8 views
1

私はTkinterのフレームに16枚のセットを置くしようとしています。 I = 1希望列0及び列にTkinterのグリッド内の位置を含む文字列である値imagedict辞書へのキーとして(imgbuttonに格納されている)イメージアドレス名をマップする辞書(例えばボタンを作成しました名前はbackgroundpic5.jpg、値は "01")。Tkinterのグリッドマネージャ(TypeError例外)

各行は4つのピクチャが含まれており、4行が合計です。 imgbuttonに相当するPhotoImageはbuttonphoto(PILを使用して作成)です。しかし、私はこれを実行してみたときに、それは私が3(タイプエラー)を与えている間、grid_configureコマンドは2つの引数に受け入れ私に語っ

Pos=imagedict[imgbutton] 
GridColumn=Pos[0]; GridRow=Pos[1] 
Button= tk.Button(root, image=buttonphoto) 
Button.grid(GridColumn, GridRow) 
Button.pack() 

エラー文で、

Traceback (most recent call last): 
    File "C:\Users\USER\Desktop\ComputerProject\Tester2Imagebg.py", line 44, in <module> 
    Button.grid(GridColumn, GridRow) 
    TypeError: grid_configure() takes at most 2 arguments (3 given) 

感謝:)

答えて

2

はERRを聴きますまたは。とにかくそれはあなたに何かを伝えていることを知っています。 Tkinter.Button.gridのドキュメントを調べてください。あなたが見Button.grid(column=GridColumn, row=GridRow)

を行う必要があり、エラーが正しいです。 Button.grid()に引数をあまりにも多く与えました。 Button.grid(...)を使用すると、実際にtk.Button.grid(Button, ...)のショートカットになるので、3つの引数を指定すると.grid()はボタンインスタンス、cnf、およびいくつかのキーワード引数を必要としています。あなたは代わりにtk.Button(...)Button.grid(...)を使用して、ボタンインスタンスを提供していますが、他の二つの位置引数を与えました。列引数と行番号をキーワード引数として指定する必要があります。

+0

私はエラーを理解しましたが、グリッド構成文に3つの引数が与えられていると考える理由を説明できますか? – LeroyJD

+1

@ LeroyJD:最後の1〜2分で私の答えを数回編集しました。不明な点がある場合は、お気軽にお問い合わせください。 – zondo

+0

ああ、私はそれを得る... – LeroyJD

0

grid() layout manager optionsの正しい構文を使用します。

Button.grid(column = GridColumn, row = GridRow) 
+0

確認[ 'グリッド()'レイアウトマネージャオプション](http://effbot.org/tkinterbook/grid.htm#Tkinter.Grid.grid-method)正しい構文。 –

+0

値は整数である必要はありません。整数の文字列表現は完璧です。 –