使用Python特性的多窗口GUI



如何使用Python特性创建两个窗口?类似的东西

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

这里的问题是,在main_gui关闭之前不会调用user_input.configurate_traits,但由于我希望在两个窗口之间进行交互,这显然是行不通的。是否有一种方法可以在不关闭窗口的情况下模拟MainGUI和UserInput中的"关闭"函数,以便代码的主体可以继续?谢谢

您在这里尝试做的并不是开拓性的。

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

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

最新更新