擅长:python、mysql、java
<p>这可能与面板的定义位置有关。由于<code>registerWidgetAsPanel</code>中的第一个参数是panel类名称的字符串表示形式(非常奇怪),因此它在脚本面板中工作(因为它就在那里定义),但在通过init加载它时不工作(因为它实际上是在模块中定义的)。如果您的模块名为<code>MyPanels</code>:</p>
<pre><code>from nukescripts.panels import registerWidgetAsPanel
pathToClass='MyPanels.NukePanel_AssetManager' #the full python path to your panel
HRName='Asset Manager' #the Human-readable name you want for your panel
regName='NukePanel.AssetManager' #the internal registered name for this panel (used for saving and loading layouts)
registerWidgetAsPanel(pathToClass, HRName, regName)
</code></pre>
<p>Nuke有一些奇怪和不一致的模块导入;如果仍有问题,请尝试将面板/模块作为变量添加到nuke模块下,该模块随处可见:</p>
<pre><code>import nuke
from MyPanels import NukePanel_AssetManager
nuke.NukePanel_AssetManager=NukePanel_AssetManager
</code></pre>
<p>哈奇,但过去帮了我很多忙</p>