mlabscenemodelのlight_managerが設定されていないのはなぜですか?
質問
Traitsuiで3D視覚化のためにMayaviを使用しています。scene
はMlabSceneModel型の形質です。照明を変更し、scene.light_manager
イベントで呼び出された関数でactivated
にアクセスしようとします。ただし、scene.light_manager
は常にNone
です。
mlab.figure()
を使用してライトマネージャを持つシーンを作成しますが、シーンをUIに統合したいと思うように、これは私にとってオプションはありません。
解決
最初のループを投げた良い質問。
TVTKソースを見ると、インタラクタが生成されたときにライトマネージャがシーンに追加されます。これはシーンの起動後に発生します。さらに、Light Managerが直接変更されない'scene:light_manager'
の特徴であるため、最初に試したことはうまくいきませんでした。そうは、プロパティによって参照されるオブジェクト自体をリッスンすると、作成時の通知がトリガーされます。言い換えれば、これを行う:
class Application(HasTraits):
scene=Instance(MlabSceneModel,())
...
@on_trait_change('scene:scene_editor:light_manager')
def muck_with_the_lights(self):
print self.scene.light_manager
. 所属していません StackOverflow