MAYA windowをリセットするスクリプト(Qt対応)
import maya.cmds as cmds
import maya.OpenMayaUI as omui
from PySide2.QtWidgets import QApplication, QMainWindow
import shiboken2
import ctypes
def get_screen_resolution():
user32 = ctypes.windll.user32
screen_width = user32.GetSystemMetrics(0)
screen_height = user32.GetSystemMetrics(1)
return screen_width/2, screen_height/2
def set_qt_window(w, h):
# Mayaのメインウィンドウを取得
main_window_ptr = omui.MQtUtil.mainWindow()
main_window = shiboken2.wrapInstance(int(main_window_ptr), QMainWindow)
# 開いている全てのウィンドウを取得
open_windows = QApplication.topLevelWidgets()
for window in open_windows:
if isinstance(window, QMainWindow):
print(window.objectName())
# ウィンドウの位置を取得
print(window.pos())
# ウィンドウの位置を設定 (例: (100, 200) に設定)
window.move(w, h)
def setWinPos(w,h):
for i in cmds.lsUI(windows=1):
if i == 'MayaWindow' or i == 'nexFloatWindow':
continue
cmds.window(i,e=1,tlc=(w,h))
w, h = get_screen_resolution()
w /= 2
h /= 2
print(w, h)
set_qt_window(w, h)
setWinPos(h, w)
#========================================
# 画面外にウィンドウにあるとき、指定位置に移動させる。
# setWinPos(0,0)
#========================================
si weight editorの画面外に行った時に困ったので作った
他の人のコードも入っています。
自己責任でお願いします。