我正在尝试创建一个nuke窗格,我可以用调用嵌入窗格的相同方式调用它。 到目前为止,我可以在“自定义窗口”菜单中看到它,但当我按下按钮时,面板显示为空
我知道代码正在工作,因为当我在脚本编辑器中复制/粘贴它时,它可以按需要工作,但我可能缺少一些调用填充窗格的函数
我正在使用QtWidgets,这是我的简化代码:
class NukePanel_AssetManager(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.setLayout(QtWidgets.QVBoxLayout())
myTable = QtWidgets.QTableWidget()
# all my functions and the things I am creating #
self.layout().addWidget(myTable)
pane = nuke.getPaneFor('Properties.1')
panels.registerWidgetAsPanel('NukePanel_AssetManager', 'Asset Manager', 'uk.co.thefoundry.NukePanel_AssetManager', True).addToPane(pane)
我错过了什么
这就解决了
谢谢你们所有人的回答,因为如果没有你们的投入,这对我来说是不可能的
模态窗格
在Nuke GUI中使用常规模式窗格的最简单方法如下:
非模态窗格
当然,您通常需要非模态窗格,如图片所示:
这可能与面板的定义位置有关。由于
registerWidgetAsPanel
中的第一个参数是panel类名称的字符串表示形式(非常奇怪),因此它在脚本面板中工作(因为它就在那里定义),但在通过init加载它时不工作(因为它实际上是在模块中定义的)。如果您的模块名为MyPanels
:Nuke有一些奇怪和不一致的模块导入;如果仍有问题,请尝试将面板/模块作为变量添加到nuke模块下,该模块随处可见:
哈奇,但过去帮了我很多忙
相关问题 更多 >
编程相关推荐