Python 如何向程序添加过渡屏幕?

Python 如何向程序添加过渡屏幕?,python,interface,traits,Python,Interface,Traits,我已经使用traits ui创建了一个程序。我试图让程序关闭它的窗口,所以它可能像一个过渡屏幕,但它不工作 from enthought.traits.api import HasTraits, Str, Int ,Instance, Any from enthought.traits.ui.api import View, Item,Group, Handler,Controller, UIInfo from enthought.pyface.timer.api import Timer cl

我已经使用traits ui创建了一个程序。我试图让程序关闭它的窗口,所以它可能像一个过渡屏幕,但它不工作

from enthought.traits.api import HasTraits, Str, Int ,Instance, Any
from enthought.traits.ui.api import View, Item,Group, Handler,Controller, UIInfo
from enthought.pyface.timer.api import Timer
class aa(HasTraits):
    name = Str
    age = Int
    view1 = View('name','age',)
class closeHandler(Handler):
    timer = Instance(Timer)
    c = Any#
    def init(self, info):
        super(closeHandler, self).init(info)
        self.c = info
        self.timer = Timer(1000, self.exit_app())
    def close(self,info,is_ok):
        super(closeHandler, self).close(info, is_ok)
    def exit_app(self):
        print self.c
        self.close(self.c)
a = aa()
a.configure_traits(handler=closeHandler())
单击OK按钮或[x]窗口关闭按钮后,将调用close()处理程序方法。你可以在窗户关闭的那一刻把你想做的事情放在那里,但是你不能让它自己从那里关闭

要从处理程序方法中关闭窗口,请调用UIInfo.ui.dispose()

因此,在示例代码中,应该使用“self.c.ui.dispose()”而不是“self.close(self.c)”,并且应该不需要close()方法

无论如何,这还不足以让这段代码正常工作,因为调用init时信息还没有初始化——我必须进一步研究这个问题。

在单击OK按钮或[x]窗口关闭按钮后调用close()处理程序方法。你可以在窗户关闭的那一刻把你想做的事情放在那里,但是你不能让它自己从那里关闭

要从处理程序方法中关闭窗口,请调用UIInfo.ui.dispose()

因此,在示例代码中,应该使用“self.c.ui.dispose()”而不是“self.close(self.c)”,并且应该不需要close()方法


这还不足以让这段代码正常工作,因为在调用init时信息还没有初始化——我必须进一步研究这个问题。

为什么覆盖
close
只是为了调用您覆盖的方法?我不知道如何实现这个目标为什么覆盖
close
只是为了调用您覆盖的方法?我不知道如何实现这个目标