Skip to main content
 首页 » 编程设计

python之是否可以在 traitsui 类中的 View 之间切换

2025年05月04日26linjiqin

我正在使用 Enthought 的 TraitsUI 在 Python 中编写一个 GUI 程序。我希望能够响应用户的操作在同一对象的不同 View 之间切换。有可能吗?

下面大致演示了我想做的事情:

from enthought.traits.api import HasTraits, Button 
from enthought.traits.ui.api import View, Item 
 
class Test(HasTraits): 
    button1 = Button('Button 1') 
    button2 = Button('Button 2') 
    button3 = Button('Button 3') 
 
    traits_view = View(Item('button1'), Item('button2')) 
    view2 = View(Item('button1'), Item('button3')) 
 
    def _button1_fired(self): 
        #select view2 
        pass 
 
    def _button3_fired(self): 
        #select traits_view 
        pass 
 
if __name__ == "__main__": 
    test = Test() 
    test.configure_traits() 

请您参考如下方法:

也许您可以通过在作为 View 一部分的组定义中使用 visible_when 关键字来实现您想要的效果,而不是通过切换 View 。示例中有一些启发: examples/demo/Dynamic_Forms/visible_when.py