python - gui中的maya python渐变和纹理缩略图视图
问题描述
我正在为 Maya 编写一个 python 脚本,并希望将 Maya 显示的小纹理缩略图用于渐变纹理,但在我的脚本的 GUI 中。有没有办法利用这些图像,或者我必须在我的脚本运行时动态生成新的缩略图并管理这些图像?
解决方案
从上面的文档中,我认为您可以使用此命令:
cmds.window()
cmds.columnLayout('r')
myShader = 'ramp2'
cmds.swatchDisplayPort('slPP', wh=(256, 256), sn=myShader)
cmds.showWindow()
如果您使用的是 PySide 或 PyQt,则有点棘手,您可能必须使用 mayaAPI 来查找此命令的指针。
from PyQt5 import QtWidgets, QtGui, QtCore
from sip import wrapinstance
import maya.cmds as cmds
import maya.OpenMayaUI as omui
def mayaToQT( name ):
# Maya -> QWidget
ptr = omui.MQtUtil.findControl( name )
if ptr is None: ptr = omui.MQtUtil.findLayout( name )
if ptr is None: ptr = omui.MQtUtil.findMenuItem( name )
if ptr is not None: return wrapinstance( long( ptr ), QtWidgets.QWidget )
myShader = 'ramp2'
control = cmds.swatchDisplayPort('slPP', wh=(256, 256), sn=myShader)
swatchQT_ramp2 = mayaToQT(control)
然后将此对象添加到您的 pyside/pyqt 转换回您的 ui !
推荐阅读
- javascript - 如何修改 AJAX 中的 GET 数据大小限制?
- r - 为什么我收到与种子相关的错误?
- android - Android Navigation Drawer 所有内容消失
- kotlin - 构造伴生对象是什么:IntEntityClass
(UserRatings) 是什么意思? - python - 从python返回字符串到C++
- java - Tomcat 忽略手动设置 Keep-Alive 标头
- arrays - strcmp(string,string) 用于回文检查器
- android - Flutter 找不到 ANDROID_HOME 路径
- javascript - Unsplash Api 下载特定大小的图像
- google-maps - Google Maps Flutter setMapStyle 未生效 - 城市名称仍在显示