Mayaって、終了する時に、Shelfの設定や、Script Editorに書いたコードとか、色々なものを保存しています!自分のツールでも、やってみたいケースがあると思います!
幸いMayaの場合は「cmds.scriptJob」を使うことで可能ですが、PySide(Qt)を使って、アプリケーションが終了する時に、保存などの処理を実行する方法を見てみたいと思います!
アプリケーション終了時に、任意の処理を追加するには「QCoreApplication」のシグナル「aboutToQuit」に実行したい関数をコネクトすればできちゃいます!
scriptJobよりもかっこいい!(ぇ
あれ、MayaとかだとQApplicationのインスタンスは作ろうと思っても、「A QApplication instance already exists.」っとエラーするじゃん!どうするの!っと思った方もいるかと思います。
「QApplication」のインスタンスは、Mayaなどインスタンス制作済みの環境であれば、「QtGui.qApp」でアクセスすることができます!
from PySide import QtGui QtGui.qApp.aboutToQuit.connect(関数・メソッド)
PySide(Qt)のSignal&Slotは、重複したコネクションをすると、全てのスロットが実行されます。Maya終了時に保存などの処理が何度も実行されないように、「QtCore.Qt.UniqueConnection」を併用したほうが良いかもしれません、、、
もし、重複したコネクションをしようとした時に、エラーが表示されます!もしエラーしてしまう場合、処理の流れを再検討したほうがいいと思います(`・ω・´)ゞ
from PySide import QtCore from PySide import QtGui QtGui.qApp.aboutToQuit.connect(関数・メソッド, QtCore.Qt.UniqueConnection)