2017-12-05 8 views
0

問題は、実行してもtkinterウィンドウは空白のままです。側面の問題として、ウィンドウが更新されてアクションチェックボタンが更新されません。コードは実行されますが、Tkinterウィンドウは空白のままです

from tkinter import * 
Pieces = {} 
Actions =[] 
class GameCreation(Frame): 
    def __init(self,master): 
     super(GameCreation,self).__init__(master) 
     self.grid() 
     self.CreatePiece() 
    #Creating pieces function 
    def CreatePiece(self): 
     Label(self,text ="What piece are we working with?").grid(row =0, 
                  column = 0, 
                  sticky = W) 
     self.piece_entry = Entry(self) 
     self.piece_entry.grid(row =0, 
          column = 1, 
          sticky = W) 

     Label (self, text = "Tick all the actions which the piece has").grid (row =1, 
                      column = 0, 
                      sticky = W) 
     self.Actions = BooleanVar() 
     self.Actions.set(None) 

    column = 0 
    row = 4 
     for action in Actions: 
      Checkbutton(self,text = action, variable = self.checkButton, value = action).grid(row = row, 
                          column = column, 
                          sticky = W) 
      if column == 5: 
       row +=1 
       column = 0 
      else: 
       column +=1 
     Button(self,text = "Add action", command = self.AddAction).grid(row = 1, 
                    column = 0, 
                    sticky = W) 
     self.action_entry = Entry(self) 
     self.action_entry.grid(row = 1, column = 1, sticky = W) 


     Button (self, text = "Create piece and it's actions", command = Add_to_dict).grid(row =2, 
                         column = 0, 
                         sticky = W) 
     self.Add_dict = Text(self, width =10, height = 2, wrap = WORD) 
     self.Add_dict.grid(row = 3, column = 0, columnspan = 4) 

それは

def Add_to_dict(self): 
     actions = Actions.get() 
     piece = piece_entry.get() 
     rules = piece, ":", actions 
     self.Add_dict.delete(0.0,END) 
     self.Add_dict.insert(0.0,rules) 
+1

コードサンプルを追加するか、この質問に投稿したサンプルを改訂することを検討してください。現在のところ、書式設定とスコープは、私たちがあなたを助けることを困難にしています。ここではそれを始めるための[偉大な資源](http://stackoverflow.com/help/mcve)です。あなたのコードで幸運! –

+1

'GameCreation'のインスタンスを作成していますか? –

+0

標準形式のPythonはコンパイルされていないため、実行される意味はありませんが、 'main'コードだけが有効です。あなたはクラスとして不器用さを持つことができますし、あなたが「メイン」でそれらを決して呼ぶことがなければ、あなたはまだうまくいくでしょう。 – Nae

答えて

2

あなたは__init__を使用する必要があるため、この関数は、この関数は単に作品の名前を印刷する必要があります

def addAction(self): 
     action = self.action_entry.get() 
     Actions.append(action) 

アクションリストに追加する必要があり、アクションが選ばれました、ではない__init

また、あなたがBooleanVarを使用している、あなたがいないNoneTrueまたはFalseにそれを設定する必要があります。

self.Actions.set(False) 

また、あなたはaddActionという名前のメソッドを持っていますが、self.AddActionのようにそれを呼び出している、とあなたはAdd_to_dictという名前のメソッドを持っていますself.Add_to_dictではなくAdd_to_dictのように呼び出しています。

最後に、GameCreationのインスタンスをどこにも作成していないようです。

関連する問題