- 最后登录
- 2022-10-8
- 注册时间
- 2010-12-6
- 阅读权限
- 100
- 积分
- 14150
- 纳金币
- 76544
- 精华
- 23
|
虽然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函数。
via yiihuu
|
|