如何通过代码在Python中移除Mayavi工具栏

1 投票
1 回答
1098 浏览
提问于 2025-04-17 19:17

我有几个Mayavi图表,我想把它们放在一个窗口里(就像文档里说的那样)。不过,如果能把所有图表上的工具栏去掉,那就更好了。虽然我可以右键点击每个工具栏让它们消失,但我想通过代码来让它们消失。像scene.hide_toolbar()这样的命令就很理想。我在TraitsUI这个包里找了一下,但没找到解决办法……有没有人知道怎么让它消失呢?

1 个回答

2

你可以使用 Handler 来修改用户界面,下面的代码适用于 ETS_TOOLKIT=qt4。把 DisableToolbarHandler 这个类添加到代码 multiple_mlab_scene_models.py 中,然后通过 m.edit_traits(handler=DisableToolbarHandler()) 来显示用户界面。

class DisableToolbarHandler(Handler):
    def position(self, info):
        for name in ["scene1", "scene2"]:
            editor = info.ui.get_editors(name)[0]
            editor._scene._tool_bar.setVisible(False)

m = MyDialog()
m.edit_traits(handler=DisableToolbarHandler())

窗口显示如下:

这里输入图片描述

撰写回答