- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法自定义mayavi场景的默认工具栏?我想删除一些按钮,因为我不需要它们(例如保存按钮)。在这里您可以看到我正在谈论哪个工具栏:
该代码只是示例代码:
import os
os.environ['ETS_TOOLKIT'] = 'qt4'
from pyface.qt import QtGui, QtCore
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 tvtk.pyface.api import DecoratedScene
from pyface.api import ImageResource
from pyface.action.api import Action
class MyCustomScene(DecoratedScene):
def _actions_default(self):
actions = [
Action(
image = ImageResource("path to image",
search_path = [self._get_image_path()],
),
tooltip = "blabla",
on_perform = self._save_snapshot,
)
]
actions.extend(DecoratedScene._actions_default(self))
return actions
#The actual visualization
class Visualization(HasTraits):
scene = Instance(MlabSceneModel, ())
@on_trait_change('scene.activated')
def update_plot(self):
# We can do normal mlab calls on the embedded scene.
self.scene.mlab.test_points3d()
# the layout of the dialog screated
view = View(Item('scene', editor=SceneEditor(scene_class=MyCustomScene),
height=250, width=300, show_label=False),
resizable=True # We need this to resize with the parent widget
)
################################################################################
# The QWidget containing the visualization, this is pure PyQt4 code.
class MayaviQWidget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
layout = QtGui.QVBoxLayout(self)
layout.setContentsMargins(0,0,0,0)
layout.setSpacing(0)
self.visualization = Visualization()
# The edit_traits call will generate the widget to embed.
self.ui = self.visualization.edit_traits(parent=self,
kind='subpanel').control
layout.addWidget(self.ui)
self.ui.setParent(self)
if __name__ == "__main__":
# Don't create a new QApplication, it would unhook the Events
# set by Traits on the existing QApplication. Simply use the
# '.instance()' method to retrieve the existing one.
app = QtGui.QApplication.instance()
container = QtGui.QWidget()
container.setWindowTitle("Embedding Mayavi in a PyQt4 Application")
# define a "complex" layout to test the behaviour
layout = QtGui.QGridLayout(container)
# put some stuff around mayavi
label_list = []
for i in range(3):
for j in range(3):
if (i==1) and (j==1):continue
label = QtGui.QLabel(container)
label.setText("Your QWidget at (%d, %d)" % (i,j))
label.setAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter)
layout.addWidget(label, i, j)
label_list.append(label)
mayavi_widget = MayaviQWidget(container)
layout.addWidget(mayavi_widget, 1, 1)
container.show()
window = QtGui.QMainWindow()
window.setCentralWidget(container)
window.show()
# Start the main event loop.
app.exec_()
我认为它隐藏在 MayaviScene 中的某个地方。也许有必要创建一个具有新场景或类似内容的新类?
最佳答案
您应该检查_actions_default
MayaviScene
和 DecoratedScene
了解如何创建您自己的一个。第二个展示了如何从头开始创建工具栏,而第一个展示了工具栏代码如何与其他组件交互。
class MyCustomScene(DecoratedScene):
# …
def _actions_default(self):
actions = [
# add icons here
# …
]
return actions
关于python - Mayavi:自定义工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52202894/
我想在同一个图中绘制多个曲面,并使轴延伸到所有曲面上。 import numpy as np # Create data with x and y random in the [-2, 2] segm
在 Mayavi 中,我想在下图中看到轴的网格 # Source: >. import numpy as np from mayavi import mlab # Test data: Matlab
有没有办法自定义mayavi场景的默认工具栏?我想删除一些按钮,因为我不需要它们(例如保存按钮)。在这里您可以看到我正在谈论哪个工具栏: 该代码只是示例代码: import os os.environ
我一直在 python 3.5 和 Windows 10 计算机上使用 Mayavi。今天,我正在使用 mayavi 编写一些脚本,并且无缘无故(据我所知)mayavi 可视化窗口停止显示。事实上,任
MATLAB 有一个hold 函数(如果我没记错的话,已经有一段时间了)可以在同一个“图形”/窗口上绘制多个内容。反正有没有在 Mayavi 做这个?我想可视化计算的几个实现,并将它们全部放在同一个图
我想根据采用离散值的另一个值(ID)更改表面的颜色(因此我需要一个离散的颜色条)。在下面的简化示例中,我绘制了一个具有 3 个不同 ID 的球体: 0/左边红色 2/蓝色在中间 1/左边绿色 但是使用
我在 python 脚本中使用 Mayavi。一切正常,除了我无法更改颜色条的大小和位置。 我生成的颜色条是这样的: colorbar = mlab.colorbar(title='Frequ
假设我有一个像这样的 4d numpy 数组:my_array[x,y,z,t]。 有没有一种简单的方法可以将整个数组加载到 Mayavi 中,然后只需选择我要调查的 t? 我知道可以为数据设置动画,
我正在寻找一种方法来保持颜色条(和场景中的颜色)不变,而不管我显示的数据如何(例如,假设我想要颜色从 0 到 10,使用当前设置 mayavi 会根据数据调整颜色,所以第一个图将从 0 到 1,第二个
如何用 Mayavi 绘制隐式方程 F(x,y,z)=0?我试过 import scipy as np x, y, z = np.mgrid[-3:3:100j, -3:3:100j, -3:3:10
我刚刚在我的计算机上重新安装了 Fedora 28,并决定在 Python 3 中试用 Mayavi,它以前只能在 Python 2 中运行。我从 pip 安装了 Mayavi。与 pip3 inst
我正在使用 mayavi.mlab 生成网格图并希望背景不透明度为 0(或透明)。这可能吗? 最佳答案 如果您的目标是将 mayavi 图形集成到 matplotlib 图形中,这是可能的。您可以使用
我正在使用 mayavi 的 triangular_mesh 方法绘制 3D 网格。数据描述了 3D 空间中面朝下的人体轮廓(因此 cmap 可用于表示与相机的距离)。 这是用于生成绘图的代码(面和顶
我想渲染大约 500 张图像并将它们保存到不同的 png 文件中,因此我编写了一个包含我的数据集和渲染函数的小类 from mayavi import mlab mlab.options.offscr
我正在尝试使用 mayavi 脚本导出图像 from mayavi import mlab # data to be exported in image mlab.savefig('output.pn
据我所知 Mayavi 没有提供任何感知上统一的色彩图。我天真地试图通过它one of Matplotlib's colormaps但失败了: from mayavi import mlab impo
据我所知 Mayavi 没有提供任何感知上统一的色彩图。我天真地试图通过它one of Matplotlib's colormaps但失败了: from mayavi import mlab impo
我正在使用 mayavi 并使用 scalar 绘制我的三角形网格mlab.triangular_mesh 中的属性 model_plot = mlab.triangular_mesh(self.mo
我似乎无法让图例出现在 Mayavi 图中。我创建了一个简单的 3D 图,但我需要为该图提供图例。 Matplotlib 支持添加方式: import matplotlib.pyplot as plt
我一直在尝试运行以下Python代码(来自Enthought的网站)来测试Enthought的Mayavi模块的动画功能。 from mayavi import mlab import numpy n
我是一名优秀的程序员,十分优秀!