2013-02-05 116 views
1

嗨我想創建一個工具,用python中的Tkinter瀏覽時間機器圖像。我打算使用這裏的代碼:http://code.google.com/p/python-ttk/source/browse/trunk/pyttk-samples/dirbrowser.py?r=21作爲目錄瀏覽器。我已經寫了一個開始菜單,點擊'瀏覽'按鈕後,我想打開目錄瀏覽器,用戶可以選擇一個文件,路徑然後傳回給標籤(我需要添加它作爲它不在目錄瀏覽器代碼)。下面是我的開始菜單代碼:tkinter蟒蛇創建子窗口

#!/usr/bin/python 

from Tkinter import * 
import ttk 

class App: 

    def __init__(self,master): 

     frame = Frame(master) 
     frame.pack() 

     self.label = Label(frame, text="Please enter file path or browse to a file") 
     self.label.pack(side=TOP) 

     self.button = Button(frame, text="OK", command=messageWindow) 
     self.button.pack(side=BOTTOM) 

     self.hi_there = Button(frame, text="Browse") 
     self.hi_there.pack(side=BOTTOM) 

     self.entry = Entry(frame, width = 30) 
     self.entry.pack(side=LEFT) 

root = Tk() 

app = App(root) 

root.mainloop() 

我已閱讀,你不能在與Tkinter的一次兩根幀,但我在努力尋找替代的目錄瀏覽器也有一個根框架。我不知道我在做什麼是正確的,但對瀏覽按鈕我已經加入:

self.hi_there = Button(frame, text="Browse", command=dir) 

我已經把目錄瀏覽器代碼的類的內部並把它稱爲目錄。所以我的想法是,我應該叫整個班級?但後來我得到一個錯誤,說明名稱dir沒有定義。我可以採取什麼方式來實現這一目標?

回答

1

我不太明白「時間機器圖像」是什麼意思,但我有幾件事可能會對你有幫助:不要使用變量名dir,因爲這是內置關鍵字,而你必然會遇到問題。如果您無法在課堂中找到名爲dir的方法,請確保您告訴它看課程內部。

def sayHello(): 
     print "Hello!" 


    class Person: 

     def sayHello(): 
      print "Hello from Person" 

    a_person = Person() 

    sayHello() 
    ##"Hello" 

    a_person.sayHello() 
    ## "Hello from Person" 

調用printHelloclass_instance.printHello是兩個不同的功能,你會想通過class_instance.dir到按鈕。

我敢肯定,你知道他們,但也有預製file dialogs,以幫助獲得文件路徑,文件名等

另一件事情是你不想要一個新的root比如,你正在尋找一個新的TopLevel instance,它與新的root基本相同,但不完全相同。

+0

時間機器映像很可能是指在Mac上運行「Time Machine」產生的備份。 – smont

+0

@ sc0tt謝謝,我必須檢查一下。不熟悉蘋果機。 – TankorSmash

+0

謝謝tankor,我有一個新問題。一旦按鈕被點擊,它正在調用該函數,但它會停在top = Toplevel.tk()的第一行上。我收到的錯誤消息是:文件「test.py」,第95行,在directory_browser top = Toplevel.tk() AttributeError:class Toplevel沒有屬性'tk。任何想法? – bigl