我有一个有许多小窗口的大型应用程序。我想使用 traitsui 的文件对话框从这些窗口打开一些文件。但是,当我这样做时,文件对话框会正确生成并选择一个文件,但它也会在完成后始终将活动窗口切换到不需要的窗口。我真的很困惑为什么。
这是一个显示相同问题的简化测试:
from traitsui.api import *
from traits.api import *
from traitsui.file_dialog import *
class BigApplication(HasTraits):
subwindow=Instance(HasTraits)
open_subwindow=Button('clickme')
traits_view=View(Item(name='open_subwindow'),height=500,width=500)
def _subwindow_default(self):
return Subwindow()
def _open_subwindow_fired(self):
self.subwindow.edit_traits()
class Subwindow(HasTraits):
f=File
some_option = Bool
openf=Button('Browse for file')
traits_view=View(Item(name='f',style='text'),
Item(name='some_option'),
Item(name='openf'),buttons=OKCancelButtons)
def _openf_fired(self):
self.f=open_file()
BigApplication().configure_traits()
当 open_file 返回并选择所需的文件时,活动窗口将切换到 BigApplication 窗口而不是返回到 Subwindow 窗口(以便用户可以在单击 OK 之前选择一些附加选项)。