2017-03-06 14 views
0

他の質問と同様のタイトルを見て、答えを読んだことがありますが、何も私のために働いていません。私はグループボックス内のすべての下に2つのボタンを持つリストボックス+スクロールバーで簡単なアプリケーションを作ろうとしています。私はPyQtはを使用しましたが、これは使用してTkinterの私の最初の時間です:シンプルなtkinterアプリにウィジェットが表示されない

import tkinter as tk 


class InputWindow(tk.Frame): 

    def __init__(self, parent, *args, **kwargs): 
     tk.Frame.__init__(self, parent, *args, **kwargs) 
     self.parent = parent 
     self.initialize() 

    def initialize(self): 
     # Group box to contain the widgets 
     self.input = tk.LabelFrame(self, text="Input Files") 

     # Listbox with scrollbar to the side 
     self.listbox = tk.Listbox(self.input) 
     self.scrollbar = tk.Scrollbar(self.listbox, orient=tk.VERTICAL) 
     self.listbox.config(yscrollcommand=self.scrollbar.set) 
     self.scrollbar.config(command=self.listbox.yview) 
     self.listbox.grid(row=0, column=0, columnspan=2) 

     self.add_btn = tk.Button(self.input, text="Add...") 
     self.add_btn.grid(row=1, column=0) 

     self.remove_btn = tk.Button(self.input, text="Remove") 
     self.remove_btn.grid(row=1, column=1) 


if __name__ == "__main__": 

    root = tk.Tk() 
    app = InputWindow(root) 
    root.mainloop() 

これは私が欲しいもの、多かれ少なかれですが、Tkinterでは:私が間違っているのは何

enter image description here

/どのようにすることができますこれが行われる?

  1. がパックに(またはグリッドまたは場所)app
  2. がパックに(またはグリッドまたは場所)input

は、あなたが使用してプログラムしている:

答えて

2

あなたは二つのことを忘れています必要なステートメント:

import tkinter as tk 


class InputWindow(tk.Frame): 

    def __init__(self, parent, *args, **kwargs): 
     tk.Frame.__init__(self, parent, *args, **kwargs) 
     self.parent = parent 
     self.initialize() 

    def initialize(self): 
     # Group box to contain the widgets 
     self.input = tk.LabelFrame(self, text="Input Files") 

     # Listbox with scrollbar to the side 
     self.listbox = tk.Listbox(self.input) 
     self.scrollbar = tk.Scrollbar(self.listbox, orient=tk.VERTICAL) 
     self.listbox.config(yscrollcommand=self.scrollbar.set) 
     self.scrollbar.config(command=self.listbox.yview) 
     self.listbox.grid(row=0, column=0, columnspan=2) 

     self.add_btn = tk.Button(self.input, text="Add...") 
     self.add_btn.grid(row=1, column=0) 

     self.remove_btn = tk.Button(self.input, text="Remove") 
     self.remove_btn.grid(row=1, column=1) 

     self.input.pack(expand=1, fill="both") # Do not forget to pack! 

if __name__ == "__main__": 

    root = tk.Tk() 
    app = InputWindow(root) 
    app.pack(expand=1, fill="both") # packing! 
    root.mainloop() 
関連する問題