python - 如何在程序中添加转换屏幕?

标签 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
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())

最佳答案

单击“确定”按钮或 [x] 窗口关闭按钮后,将调用 close() 处理程序方法。你可以把你想要在窗口关闭时完成的事情放在那里,但你不能让它从那里自动关闭。

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

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

无论如何,这还不足以使该代码正常工作,因为调用 init 时信息尚未初始化 - 我必须更多地研究这个问题。

关于python - 如何在程序中添加转换屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7292414/

相关文章:

c# - Json.net反序列化数组接口(interface)

python - odoo - 从 many2one 领域获取值(value)

python - 在具有自定义信号处理程序的情况下在 python 2 中读取 sys.stdin 时出现奇怪的阻塞行为

python - 在 azure ML studio 中安装数据湖存储

java - Java 有没有办法检查具体类是否实现具有相同完全限定名称的外部接口(interface)?

c# - List<Interface> 的 object[] 返回 null

python - networkx - 根据列表或字典值更改节点大小

rust - 如何使我自己的适配器方法能够使用特征对象?

scala - 如何获取在指定类中混合的特征列表?

rust - 如何装箱具有关联类型的特征?