2016-05-26 42 views
-1

私はちょうど今日のpythonとtkinterを学び始めました。ウィジェットをウィンドウに表示することはできません。それは私が与えた名前を持っており、プログラムを実行するとウインドウ自体が表示されますが、ウィジェットは表示されず、背景色も表示されません。tkinterウィジェットが表示されない

import Tkinter 

class mainthing(Tkinter.Tk): 
    def _init_(self,parent): 
     Tkinter.Tk.__init__(self,parent) 
     self.parent = parent 
     self.initialize() 

    def initialize(self): 
     self.grid(bg="#001a00") 

     self.topEntry = Tkinter.Entry(self, bg = "#006600", fg = "#00ff00") 
     self.topEntry.grid(column=0, row=1, sticky="EW") 
     topEntry.pack() 

     yesBut = Tkinter.Button(self, text="Yes") 
     yesBut.grid(column=1, row=1) 

     query = Tkinter.Label(self, fg="#00ff00", bg="#001a00", anchor="W") 
     query.grid(column=1, row=0, columnspan=2, sticky="EW") 

if __name__ == "__main__": 
    app = mainthing(None) 
    app.title("RUN ON START TEST") 
    app.mainloop() 

助けてください。

+2

私はちょうど*今日早くPythonとTkinterのを学び始めました* **。ここで質問するのは早すぎる。私は[初心者のチュートリアル](http://effbot.org/tkinterbook/tkinter-index.htm)で回答を見つけることができます。 [ヘルプセンター](http://stackoverflow.com/help)にアクセスしてください。 –

答えて

2

私はちょうど

今日早くPythonとTkinterのを学び始め、私はあなたがPythonとTkinterの詳細を読む必要があるとして、あなたはここに質問を投稿することが早すぎると思います。あなたの質問は、しかし、私はあなたのエラーの簡単な説明と解決策を提供します、閉じることができる:すべての

  • まず、あなたはタイプミスを持っている:私たちは、あなたが渡す必要が__init__()ない_init()_
  • を書くFrame代わりの​​でTk
  • 変更Tkinter.Tk.__init__(self, parent)
  • Tkinter.Frame.__init__(self, parent)にこれは意味がありません: self.grid(bg="#001a00")。それを除く。
  • CanvasまたはFrameに添付する必要があるため、ウィジェットは表示されません。
  • メインアプリケーションについて2回考えます。
  • pack()grid()を混用しないでください。ここで

Frameを使用してクイックソリューションです:

import Tkinter as Tk 

class mainthing(Tk.Frame): 
    def __init__(self,parent): 
     Tk.Frame.__init__(self, parent) 
     self.parent = parent 
     self.initialize() 

    def initialize(self): 

     self.parent.title("RUN ON START TEST")  
     self.parent.grid_rowconfigure(0,weight=1) 
     self.parent.grid_columnconfigure(0,weight=1) 
     self.parent.config(background="red") 

     self.frame = Tk.Frame(self.parent) 
     self.frame.pack(fill=Tk.X, padx=5, pady=5) 

     self.topEntry = Tk.Entry(self.frame, bg = "#006600", fg = "#00ff00") 
     self.topEntry.grid(column=0, row=1, sticky="ew") 


     yesBut = Tk.Button(self.frame, text="Yes") 
     yesBut.grid(column=1, row=1) 

     query = Tk.Label(self.frame, fg="#00ff00", bg="#001a00", anchor="w") 
     query.grid(column=1, row=0, columnspan=2, sticky="ew") 


if __name__ == "__main__": 
    root=Tk.Tk() 
    app = mainthing(root) 
    root.mainloop() 
2

いくつかの小さなミスがあります。

  1. それは2つのアンダースコア
  2. は背景がの `configで設定されていると、__init__をお読みください``
  3. topEntry.packを使用しているため、不要ですこれらの補正でgrid

、このようなコードを見て:あなたの*コードは* * *** BIG MESSである理由です:

import Tkinter 

class mainthing(Tkinter.Tk): 
    def __init__(self,parent): 
     Tkinter.Tk.__init__(self,parent) 
     self.parent = parent 
     self.initialize() 

    def initialize(self): 
     self.config(bg="#001a00") 

     self.topEntry = Tkinter.Entry(self, bg = "#006600", fg = "#00ff00") 
     self.topEntry.grid(column=0, row=1, sticky="EW") 

     yesBut = Tkinter.Button(self, text="Yes") 
     yesBut.grid(column=1, row=1) 

     query = Tkinter.Label(self, fg="#00ff00", bg="#001a00", anchor="w") 
     query.grid(column=1, row=0, columnspan=2, sticky="EW") 

if __name__ == "__main__": 
    app = mainthing(None) 
    app.title("RUN ON START TEST") 
    app.mainloop() 
関連する問題