Ich habe ein UI-Fenster für Autodesk Maya 2015 gemacht. Jedes Mal, wenn ich das Skript in Maya Skript-Editor ausführen, funktioniert es gut, die UI wird gestartet und es dockt ordnungsgemäß im Haupt Maya-Fenster.Maya UI nicht nach dem Ausführen von Skript docken
Nach dem Schließen des UI-Fensters und dem erneuten Ausführen des Skripts wird das Fenster jedoch nicht mehr angedockt. Es bleibt auf dem Hauptbildschirm hängen und ich muss die ganze Software schließen. Es scheint, dass die Benutzeroberfläche das Haupt-Maya-Fenster nicht mehr finden kann, nachdem ich es das erste Mal geschlossen habe. Ich bin mir nicht sicher, wie ich das beheben soll. Kann mir jemand Ratschläge geben, wie ich dieses Problem beheben kann?
Hier ist mein Code:
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)
Es wäre nützlich zu sehen, FormClass und BaseClass-Implementierungen (ich nehme an, sie sind PySide UIs, richtig?). Die mehrfache Vererbung kann schwierig sein (wenn Sie sich nicht damit auskennen, sehen Sie sich https://stackoverflow.com/a/3277407/8200213 an). Auch die gesamte 'pipeWindow'-Struktur ist mir unklar: Sie Eltern einige PySide UI (wahrscheinlich nur' formClass') in das Hauptfenster, aber dann übergeben Sie ein 'paneLayout' zu' dockControl': Ich verstehe nicht, wie es geht arbeiten, sogar bei der ersten Ausführung. Wenn Sie Ihre aktuelle Lösung nicht schätzen, sollten Sie 'MayaQWidgetDockableMixin' verwenden; Ansonsten bitte den Code weiter erläutern – mapofemergence