2016-05-07 11 views
0

Appクラスのcreate_widgetsメソッドにtkinterを使用してリストボックスを追加するにはどうすればよいですか? 私の問題は "Listbox(master)"です。私はコードに統合する方法がわかりませんし、エラーが発生するたびに解決します。tkinterを使用してリストボックスをコードに追加する方法

from tkinter import * 

class App(Frame): 

    def __init__(self, master): 
     Frame.__init__(self, master) 
     self.grid() 
     self.create_widgets() 

    def create_widgets(self): 

     IpLabel = Label(self, text='Device_A Ip') 
     IpLabel.grid(row=0, column=0) 
     IpEntry = Entry(self, width=20) 
     IpEntry.grid(row=0, column=1) 
     IpEntry.insert(0, '10.0.0.5') 

     #Checkbutton 
     self.var = BooleanVar() 
     cb = Checkbutton(self, text="Infinite Loop", variable=self.var) 
     cb.deselect() #the Checkbutton default is unselected 
     cb.grid(columnspan=2) #place of the Checkbutton 


     #run widget 
     self.run_button = Button(self, text='run') 
     self.run_button.grid(row=20, column=0) 


    def run(self): 
     self.mainloop() 


if __name__ == "__main__": 

    #open gui file 
    root = Tk() 
    root.title('ACM') 
    app = App(root)  
    app.run() 

たとえば、このリストボックスコードを統合する必要がある場合はどうすればよいですか?

master = Tk() 

listbox = Listbox(master) 
listbox.pack() 

listbox.insert(END, "a list entry") 

for item in ["one", "two", "three", "four"]: 
    listbox.insert(END, item) 

mainloop() 

答えて

0

あなたのコードに編集できますか?他のすべてのウィジェットを持っているように、なぜこれを統合できないのか分かりません。

元のグリッド構造を維持:

import tkinter as tk 

class App(tk.Frame): 

    def __init__(self, master): 

     tk.Frame.__init__(self, master) 
     self.grid() 
     self.create_widgets() 

    def create_widgets(self): 

     IpLabel = tk.Label(self, text='Device_A Ip') 
     IpLabel.grid(row=0, column=0) 
     IpEntry = tk.Entry(self, width=20) 
     IpEntry.grid(row=0, column=1) 
     IpEntry.insert(0, '10.0.0.5') 

     #Checkbutton 
     self.var = tk.BooleanVar() 
     cb = tk.Checkbutton(self, text="Infinite Loop", variable=self.var) 
     cb.deselect() #the Checkbutton default is unselected 
     cb.grid(columnspan=2) #place of the Checkbutton 

     listbox = tk.Listbox(self) 
     listbox.insert(tk.END, "a list entry") 
     for item in ["one", "two", "three", "four"]: 
      listbox.insert(tk.END, item) 
     listbox.grid(row=1, rowspan=19, column=0, columnspan=2, sticky="nsew") 
     #run widget 
     self.run_button = tk.Button(self, text='run') 
     self.run_button.grid(row=20, column=0) 

if __name__ == "__main__": 

    #open gui file 
    root = tk.Tk() 
    root.title('ACM') 
    app = App(root)  
    root.mainloop() 
+1

感謝の男は、私は本当にあなたの助けに感謝! –

関連する問題