現在、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()
ありがとう!