Как добавить экран перехода в программу?

1

У меня есть черты 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())
  • 0
    Зачем переопределять close только для вызова самого метода, который вы переопределили?
  • 0
    Я не знаю, как достичь этой цели
Теги:
traits
interface

1 ответ

1

Метод обработчика close() называется ПОСЛЕ ОК, или щелкнули кнопки закрытия окна [x]. Вы можете поместить туда вещи, которые хотите сделать, когда окна закрыты, но вы не можете закрыть его оттуда.

Чтобы закрыть окно из метода Handler, вызовите UIInfo.ui.dispose().

Итак, в вашем примере кода вы должны использовать "self.c.ui.dispose()", а не "self.close(self.c)", и метод close() не должен быть лишним.

Этого недостаточно для того, чтобы этот код работал, так или иначе, потому что информация еще не инициализирована при вызове init - мне придется больше вникать в проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню