2011-10-24 13 views
0

これは、ボタンを押してリストボックスに内容を表示するときにファイルを開くことです。これは私がこれまで持っているものですが、私はリストボックスが表示され、おろか情報は、リストボックスであることを得るためになっていない午前:カントがtkinterに表示するリストボックスを取得する

#!/usr/bin/perl -w 

import time 
from Tkinter import * 
import tkFileDialog 

def listbox(listbox): 

    def open_file(): 
      file = tkFileDialog.askopenfilename() 
      openFile = open(file) 
      for line in openFile: 
       listbox.insert(END, line) 

    open_file() 


class App: 

    def __init__(self, parent): 

     frame = Frame(parent.title("Buttons")) 
     frame.pack() 
     root.pack_propagate(0) 

     self.exit = Button(frame, text="QUIT", fg="red", command=frame.quit) 
     self.exit.pack(side=LEFT) 

     self.open = Button(frame, text="Open...", command=self.call_listbox) 
     self.open.pack(side=LEFT) 

     frame.listbox = Frame() 
     scrollme = Scrollbar(frame.listbox) 
     self.listbox = Listbox(frame.listbox, yscrollcommand = scrollme.set) 
     scrollme.config(command = self.listbox.yview) 
     scrollme.pack(side = RIGHT, fill = Y) 
     self.listbox.pack() 
     self.listbox.insert(END, "Code:") 

    def call_listbox(self): 
     listbox(self.listbox) 

root = Tk() 
app = App(root) 
root.mainloop() 

任意の提案ですか?ありがとう

+0

あなたのスクリプトの最初の行に '#!/ usr/bin/perl -w'がある理由は何ですか?これは私にとってはPythonのようです。 –

答えて

1

あなたはリストボックスを含むフレームを梱包するのを忘れています。

FWIWでは、リストボックスの名前がオーバーロードされるとコードが非常に混乱します。def listbox(listbox),self.listbox、です。そして、あなたはまた、call_listboxと混乱に追加するListboxクラスを持っています。

+0

私はscrollme.packの直後に梱包していますが、混乱していることに同意します。これはちょっと大まかなコーディングであり、haventは私がまだ欲しいものにラベルを付ける機会を持っていました。 – Blizbiggy

+0

@Blizbiggy:いいえ、そうではありません。あなたのコードのどこにも 'frame.listbox.pack()'のようなことはありません。私の答えをもう一度読んでください:あなたはリストボックスが入っている_frame_を梱包していません。 –

+0

ohhhhhhh ok私は今それが笑を参照してください。それは後に働いている:)それはしばらくの間、それを凝視した後、関数は1つのO.Oにマージするようだ。再度、感謝します! – Blizbiggy

関連する問題