繁体   English   中英

tkinter python创建子窗口

[英]tkinter python create child window

嗨,我正在尝试创建一个工具,该工具在python中使用Tkinter浏览时间机器图像。 我打算使用以下代码: http : //code.google.com/p/python-ttk/source/browse/trunk/pyttk-samples/dirbrowser.py?r=21用于目录浏览器。 我已经编写了一个开始菜单,并单击“浏览”按钮后,我想打开目录浏览器,用户可以在其中选择文件,然后将路径传递回Label(我需要添加它,因为它不在目录浏览器代码)。 以下是我的开始菜单的代码:

#!/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。 所以我的想法是我应该给整个班级打电话? 但是然后我收到一条错误消息,指出未定义名称dir。 我怎样才能正确解决这个问题?

我不太了解您所说的“时间机器映像”的含义,但是我有一些事情可能会对您有所帮助:不要使用变量名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传递给按钮。

我确定您了解它们,但是有预制的文件对话框可帮助获取文件路径,文件名等。

另一件事是,您不需要新的root实例,而是在寻找新的TopLevel实例 ,该实例与新的root本质上是相同的,但并不完全相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM