在Maya2017附带的PySide2版本中,似乎缺少QWindow类上的winId方法:
w.winId()
Error: AttributeError: file <maya console> line 1: 'PySide2.QtGui.QWindow' object has no attribute 'winId' # 有没有办法从现有的QWindow实例中获取此值?
发布于 2017-09-19 13:08:52
我在macOS 10.11.6上使用了Maya 2018。试试这段代码。它起作用了。
from maya import OpenMayaUI as omui
try:
from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *
from PySide2 import __version__
from shiboken2 import wrapInstance
except ImportError:
from PySide.QtCore import *
from PySide.QtGui import *
from PySide import __version__
from shiboken import wrapInstance
mayaMainWindowPtr = omui.MQtUtil.mainWindow()
mayaMainWindow= wrapInstance(long(mayaMainWindowPtr), QWidget)
w = QLabel("Hello, Window", parent=mayaMainWindow)
w.setObjectName('Label1')
w.setWindowFlags(Qt.Window)
w.show() 在键入之后:
w.winId()你会得到类似这样的东西:
# Result: 140640756092816 #

发布于 2017-09-21 07:15:53
安迪的例子在Maya2018和最新版本的Maya2017中都适用,但至少在MAYA2017的初始版本中抛出了一个例外。
我估计这个问题是由PySide2中的一个bug引起的,这个bug在这个过程中得到了修复。
https://stackoverflow.com/questions/46290088
复制相似问题