2024-09-28 21:53:31 发布
网友
是否可以删除/隐藏使用mayavi打印时默认创建的标准工具栏?我发现了这个:How to remove Mayavi toolbar in python using code
但我不知道该在哪里插入代码。有比这更简单的吗mlab.toolbar.setVisible(假)?在
在图形上,可以很容易地这样做:
fig = mlab.figure(1) fig.scene.scene_editor._tool_bar.setVisible(False)
import os os.environ['ETS_TOOLKIT'] = 'qt4' os.environ['QT_API'] = 'pyqt5' from traits.api import HasTraits, Instance, on_trait_change from traitsui.api import View, Item from mayavi.core.ui.api import MayaviScene, MlabSceneModel, SceneEditor from PyQt5.QtWidgets import * from main import Ui_MainWindow import sys from traitsui.api import Handler class Visualization(HasTraits): scene = Instance(MlabSceneModel, ()) @on_trait_change('scene.activated') def update_plot(self): self.scene.mlab.test_points3d() view = View(Item('scene', editor=SceneEditor(scene_class=MayaviScene), height=250, width=300, show_label=False), resizable=True # We need this to resize with the parent widget ) class DisableToolbarHandler(Handler): def position(self, info): editor = info.ui.get_editors('scene')[0] editor._scene._tool_bar.setVisible(False) class MayaviQWidget(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) layout = QVBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) self.visualization = Visualization() self.ui = self.visualization.edit_traits(handler=DisableToolbarHandler(), kind='subpanel').control layout.addWidget(self.ui) self.ui.setParent(self) class Action(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(Action, self).__init__(parent) self.setupUi(self) self.splitter.setSizes([100, 300]) self.splitter_2.setSizes([400, 100]) container = QWidget() mayavi_widget = MayaviQWidget(container) self.Layout.addWidget(mayavi_widget) if __name__ == "__main__": app = QApplication(sys.argv) action = Action() action.show() sys.exit(app.exec_())
在图形上,可以很容易地这样做:
相关问题 更多 >
编程相关推荐