2013-02-05 79 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