2017-08-29 9 views
2

私はTkinterから始まり、ウィンドウの上側に水平ボタンバーと残りのウィンドウにエントリのリストを持つ単純なルートウィンドウを作ろうとしています。Tkinterルートウィンドウクラス継承、__init__でウィジェットを追加する

私はこのラインがわかりステップでこのステップをデバッグ:

  _button_widget = tk.Button(self.button_bar, title=_button_label) 

のinit方法は、ウィンドウを閉じるメインに戻りすることができます。 サイドノート:IDEとしてVisual Code Studioを使用して例外を発生させることはできません。また、ボタン部分を削除するとウィンドウが作成され、表示されます。

main.py:

# -*- coding: utf-8 -*- 

import display_commander 

def main(): 
    dc = display_commander.DisplayCommander() 
    dc.mainloop() 

if __name__ == "__main__": 
    main() 

display_commander.py:

# -*- coding: utf-8 -*- 

import Tkinter as tk 

class DisplayCommander(tk.Tk, object): 

    def __init__(self): 
     super(DisplayCommander, self).__init__() 

     self.geometry("350x150+150+150") 

     # Button bar 
     self.button_bar = tk.Frame(self) 
     self.button_bar.config(bg="red") 
     self.button_bar.pack() 

     # Buttons 
     self.buttons = [] 
     for _button_label in ['New Window', 'Delete Window', 'Save Config', 'Load Config']: 
      _button_widget = tk.Button(self.button_bar, title=_button_label) 
      _button_widget.pack() 
      self.buttons.append([_button_label,_button_widget]) 

     # Window List 
     self.window_list = tk.Frame(self) 
     self.window_list.config(bg="yellow") 
     self.window_list.pack() 
+0

このコードは間違いなくあなたに役立つ例外をスローするはずです。 「Visual Code Studio」IDEがどのように構成されているかを調べる必要があります。 –

答えて

2

titleパラメータは、ボタンのために働くtextことによってそれを置き換えることはできません。

_button_widget = tk.Button(self.button_bar, text=_button_label) 

(あなたのコードにself.buttonsのリストをどのように使用したいのか分かりませんが、辞書でより良い選択肢がありますか?並べ替えられた構造体の格納が不要な場合は、ウィジェットの検索/一致が簡単になります)。

self.buttons = {} 
    [...] 
    self.buttons[_button_label] = _button_widget 
+0

ありがとう私は問題を見つけることができませんでした。また、例外が発生していない(または少なくとも私はVisual Code Studioで見ることができません)理由に驚いています。辞書については、非常に良いアイデアであり、アドバイスをさらに進めることに感謝します。私はそれが必要かどうかわからない、私はボタンのコントローラを追加すると、私は必要がないかもしれないdictやリストもすべて。 –

+0

PyCharmは素晴らしい '_tkinter.TclError:未知のオプション" -title "'を投げます。それはあなた自身のストレージを持つことは便利かもしれない、それは本当に次のコードのロジックに依存する – PRMoureu

関連する問題