を再実行した後、私はそれが正常に動作し、オートデスクマヤ2015年のためのUIウィンドウ私はMayaのスクリプトエディタ内のスクリプトを実行するたびに作られている、UIは、Mayaのメインウィンドウ上で適切にドックを立ち上げ、それを取得します。マヤUIませんドッキングスクリプト
ただし、UIウィンドウを閉じてスクリプトを再実行すると、ウィンドウはもうドッキングしません。それはメイン画面で立ち往生し、私はソフトウェア全体を閉じる必要があります。初めてUIを閉じるとUIがメインのMaya Windowを見つけられなくなったようです。私はこれをどのように修正するか分からない。誰も私にこの問題を解決する方法のいくつかのアドバイスを与えることができますか?
def getMayaWindow():
ptr = apiUI.MQtUtil.mainWindow()
if ptr is not None:
return shiboken.wrapInstance(long(ptr), QtGui.QMainWindow)
class pipeWindow(formClass,baseClass):
def __init__(self, parent=getMayaWindow()):
super(pipeWindow,self).__init__(parent)
self.setupUi(self)
self.setObjectName('pipe_window')
try:
cmds.deleteUI('dockPane')
except:
pass
self.pane = cmds.paneLayout('dockPane', cn='single')
if 'pipeDock' not in cmds.lsUI(ctl=1) :
cmds.dockControl('pipeDock', con=self.pane, area='right',
allowedArea = ['right','left'], label =
"ANMD_Pipeline", w=365)
else:
pass
cmds.control('pipe_window', e=True, p=self.pane)
formClassとbaseClassの実装を見てみると便利です(私はそれらがPySide UIだと思います)。複数の継承が難しい場合があります(慣れていない場合はhttps://stackoverflow.com/a/3277407/8200213をご覧ください)。また、 'pipeWindow'構造体全体が私には分かりません。PySideのUI(親フォームのフォームクラス)を親ウィンドウに親しますが、' paneLayout'を 'dockControl'に渡します。どうすればいいのですか?最初の裁判でさえ、仕事。現在のソリューションについて貴重でない場合は、 'MayaQWidgetDockableMixin'を使用することを検討してください。さもなければコードをさらに説明してください – mapofemergence