0

如何使用 Python 特征创建两个窗口?就像是

if __name__ == '__main__':
    main_gui = MainGUI()
    user_input = UserInput()

    main_gui.configure_traits()
    user_input.configure_traits()

这里的问题是 user_input.configure_traits 在 main_gui 关闭之前不会被调用,但是因为我想在两个窗口之间进行交互,这显然不会这样做。有没有办法在 MainGUI 和 UserInput 中模拟“关闭”功能而不实际关闭窗口,以便代码的主体可以继续?谢谢!

4

1 回答 1

0

你在这里试图做的不是 traithonic。

您应该做的是将用户输入窗口设置为主窗口的子窗口,并使用特性的事件监听系统来跟踪用户的交互。一个非常简单的例子:

class MainGUI(HasTraits):
  GUIWidgetsForMainGUI = Any
  user_window = Instance(UserInput)
  button = Button('Get User Input')

  traits_view=View(Item('GUIWidgetsForMainGUI'),
    Item('button'))

  def _button_fired(self):
    self.user_window.edit_traits()

  @on_trait_change('button')
  def or_alternately_you_can_use_listeners(self):
    self.user_window.edit_traits()

MainGUI().configure_traits()
于 2013-08-22T18:01:51.340 回答