更新:我在代码中放置了print命令,以隔离错误时刻。下面代码的输出是a b c d
。最后,我使用提供的替代代码切换到pyqt/pyside,但请告诉我是否可以从当前设置中以任何其他方式帮助调试此问题。在
from numpy import ogrid, sin
from traits.api import HasTraits, Instance
from traitsui.api import View, Item
from mayavi.sources.api import ArraySource
from mayavi.modules.api import IsoSurface
from mayavi.core.ui.api import SceneEditor, MlabSceneModel
class MayaviView(HasTraits):
scene = Instance(MlabSceneModel, ())
print "a"
view = View(Item('scene', editor=SceneEditor(), resizable=True,
show_label=False),
resizable=True)
print "b"
def __init__(self):
print "z"
HasTraits.__init__(self)
x, y, z = ogrid[-10:10:100j, -10:10:100j, -10:10:100j]
scalars = sin(x*y*z)/(x*y*z)
src = ArraySource(scalar_data=scalars)
self.scene.engine.add_source(src)
src.add_module(IsoSurface())
#-----------------------------------------------------------------------------
# Wx Code
import wx
print "c"
class MainWindow(wx.Frame):
print "d"
def __init__(self, parent, id):
print "e"
wx.Frame.__init__(self, parent, id, 'Mayavi in Wx')
self.mayavi_view = MayaviView()
self.control = self.mayavi_view.edit_traits(
parent=self,
kind='subpanel').control
self.Show(True)
app = wx.PySimpleApp()
frame = MainWindow(None, wx.ID_ANY)
app.MainLoop()
初始帖子:
我试图在mayaVI的网站上复制官方代码,以便嵌入wxWidgets(Wx embedding example)。在
第一个错误发生在使用app = wx.PySimpleApp()
时,我通过一个在线建议将其更改为app = wx.App(False)
。在
在这一步之后,程序运行时不会出现命令行错误,但在数据可视化步骤中会挂起(python可视化窗口不会打开,但会显示为图标)。在
为了测试我的模块是否正确安装,我使用了MayaVI的官方Qt示例(Qt embedding example)——它工作得非常好。在
详细信息:我在conda环境中运行Pythonw v=2.7.14,wxPython v=4.0.1(osx cocoa phoenix)和mayaVI v=4.5.0,全部通过macOS High Sierra版本10.13.3运行。在
在这件事上的任何建议都将是一个巨大的帮助-让我知道如果我能回答我自己。在
目前没有回答
相关问题 更多 >
编程相关推荐