Index

maya cmds UI について-note-
2020-05-23 sat 覚書き

基本的に、現状、UIは Maya cmds で記述している。
また、classベースで記述しているのだが、
これまで、cmds の layout, button, text, popUp 等、
同class 内の 他のdef 内で、再度呼び出しを想定した時には、
予め、初めて出現したときに、
e.g.:
cmds.button('cB_exe', l = u'実行ボタン', c = self.exe) #初めての出現記述
などと記述し、
再度呼び出して再利用し、例えば、l フラグで、内容を変更したいときは、
cmds.button('cB_exe', e = True, l = u'削除ボタン')
などと記述し、
こうやって、編集するために、呼び出していた。

以前から、

疑問

cmds.button('cB_exe'.....)
記述だったり、
self.cB_exe = cmds.button('cB_exe'.....)
記述だったりして、self宣言記述と、self宣言しているのに、
別途、内部で、'cB_exe'記述していたりして、
記述理由があいまいで、理解を不十分にしていた。
一体、どの記述が正解なのだろうかと。。

しかし、本日じっくり考えていて、やっと理解できたので、メモしておく!!

結論

e.g.:
self.cB_exe = cmds.button(l = u'実行ボタン', c = self.exe)
などと記述しておいた方が良い

理由がやっと判明した。

理由

理由はこうだ。
他の別UI.py への影響を受けない記述であるからである。

つまり、
再度の呼び出しを可能とするためだけなら、
cmds.button('cB_exe'.....)
でも一向にかまわない!しかし、
cmds.button('cB_exe'.....)記述がNGな理由は、
'cB_exe'と同じ名前を利用している、別UI.py があった場合に、別UIへの影響が出るのだ!!
ほかの UI .py の記述内で、同様に、
e.g.:
cmds.button('cB_exe', l = u'実行ボタン', c = self.exe) #他のUI.pyコード内での、初めての出現記述
というように、使用していると、
例えば、互いのUIを1つづつ、互いに別個で立ち上げていたとしても、
互いに影響が出るのだ。
以前から、なぜか互いのUIに影響を受ける現象を時折見かけ、不思議で困っていたのだ。

つまり、

最適

初出現では、
self.cB_exe = cmds.button(l = u'実行ボタン', c = self.exe)
と記述し、
同class の 別def 内部での再呼び出し時には、
cmds.button(self.cB_exe, e = True, l = u'削除ボタン')
と記述する!!

のが正解である!!

これは、self. 記述が付加されているので、

現象

別の cB_exe だと判別してくれるのである!!
cmds.button(self.cB_exe)

理解出来ていなかった!盲点だった!!


以上



最終更新日: 2024年4月18日 09:56:45