虽然nuke内置了pyside,但是想用pyqt还是可以的。

  配置pyqt需要几个步骤,当然Python26也要安装。

  要在nuke里面用qt,先下载Qt 4.6.2 然后运行build.py 参数 release 64,编译pyqt需要链接的所有库。

  编译完成后,将可执行程序的路径加入环境变量。


  后面是各个平台的具体操作步骤:


  Mac OSX

  下载sip,并解压


  运行如下命令:

  configure.py

  make

  make install


  下载pyqt4的源码,并解压

  到解压目录下面运行命令:

  configure.py

  make

  make install


  PyQt库配置来指向nuke的qt库,运行soFileFixForMacPyQt.py,其和qt的源码绑在一起。

  最后根据 Environment setup来设置环境。


  Linux

  下载sip,解压,编译:

  configure.py

  make

  make install

  下载pyqt4,解压编译:

  configure.py

  make

  make install


  最后看 环境设置部分


  Window

  和linux操作差不多,不再赘述。


  Enviroment Setup


  编译好的sip和pyqt应该在python的site-packages目录。推荐做法:拷贝sip和pyqt到一个单独目录,然后添加到python path里面


  例如: 给nuke的pyqt创建一个目录 ,并拷贝文件到目录下:

  ## files and dirs to copy

  PyQt4/

  sip.so

  sipconfig.py

  sipdistutils.py

  ## final directory tree looks like

  /PyQt4/*

  /sip.so

  /sipconfig.py

  /sipdistutils.py


  将pyqt添加到python,你就可以从nuke里面使用pyqt了。

  export PYTHONPATH=

  或者在nuke的 menu.py里面加入:

  sys.path.append ("")


  第一个 PyQt 窗口

  启动NUKe,打开脚本编辑器,填入下列命令:

  from PyQt4 import QtGui

  label = QtGui.QLabel("Hello World")

  label.show()


  hello world窗口就会显示

  Pyside和 PyQt knobs

  可以把PyQt的widget插入nuke的python panel,并像

  nuke的panel一样停靠。

  想要PyQt的widget可停靠,就需要用一个wrapper knob来创建

  其可以被PyCustom_Knob.

  wrapper knob 要有 makeUI()函数来返回widget。


  作为例子,可以看nukescript/pyQtExamples目录下的webBrowser.py


  测试例子,在脚本编辑器输入:

  import nukescripts.pyQtExamples.webBrowser


  现在pane菜单就有一个web browser了。

  也可以使用panels.registerWidgetAsPanel 的wrapper函数来 wrap一个PyQt的widget,而不是创建一个自定义knob,同样适用于pyside。

  更多信息请查看Dockable Pyside widget。


  从Qt程序迁移 nuke6.2

  以前的nuke,需要在另外的线程里面运行pyqt,并且用executeInMainthread来调用nuke。

  这在nuke6.3或者以后版本就不适用了。

  为了后向兼容,pyQtappUtiles.py可以让以前的函数继续使用,但是推荐更新代码,使用qt标准的show函数。


,nuke教程,nuke技巧