目前在maya中编写一个简单的脚本来获取相机信息并将其呈现在GUI中。脚本打印所选摄像机的摄像机数据没有问题,但是当按下按钮时,我似乎无法用数据更新文本字段。我确定它只是一个简单的回复,但我无法解决如何做到这一点。
下面是代码:
from pymel.core import *
import pymel.core as pm
camFl = 0
camAv = 0
win = window(title="Camera Information", w=300, h=100)
layout = columnLayout()
txtFl = text("Field Of View:"),textField(ed=0,tx=camFl)
pm.separator( height=10, style='double' )
txtAv = text("F-Stop:"),textField(ed=0,tx=camAv)
pm.separator( height=10, style='double' )
btn = button(label="Fetch Data", parent=layout)
def fetchAttr(*args):
camSel = ls(sl=True)
camAttr = camSel[0]
cam = general.PyNode(camAttr)
camFl = cam.fl.get()
camAv = cam.fs.get()
print "Camera Focal Length: " + str(camFl)
print "Camera F-Stop: " + str(camAv)
btn.setCommand(fetchAttr)
win.show()
谢谢!
答案 0 :(得分:0)
一些事情:
1)由于这些行上有逗号,因此您将<{1}}和txtAV
分配给一个一个textField和一个文本对象。所以你不能设置属性,你在一个变量中有两个对象而不是pymel句柄。
2)您依靠用户选择形状,因此如果他们在大纲中选择了相机节点,代码就会向南移动。
否则基础是健全的。这是一个工作版本:
textFl