【发布时间】:2021-04-27 17:37:02
【问题描述】:
上周我开始学习 Python for Maya,遵循“CGCircuit - 在 Maya 中学习 Python”。 现在我正在尝试使用 Qt 为 Maya2020 制作一个简单的 UI。教程本身已经过时了,自 Maya2015 以来发生了很多变化。 我查了很多论坛,看来我不是唯一一个有问题的人。这是我目前学到的:
- Qt Designer 不再是 Maya 的一部分,所以我下载了 Qt Creator 4.14.0(社区)
- 我用pip安装:shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl
- 如果我没记错的话,Maya2020 已经预安装了 Pyside2,但我也在 Windows10 上安装了 Pyside2
- QtGui.QDialog 被 QWidget 取代 目前我在我的 Windows 系统上使用 Python 2.7.17,但我的环境变量中也有 Python3.8 可用
当我在 Maya 中调用 py 脚本时,像这样:
import geomGenerator
reload(geomGenerator)
geomGenerator.getMayaWindow()
geomGenerator.run()
我收到此错误:
Error: NameError: file C:/Users/12213119/Documents/maya/2020/scripts\geomGenerator.py line 12: global name 'shiboken2' is not defined #
不确定这意味着什么或如何解决。我查看了整个互联网,请让我知道我做错了什么。谢谢。
from PySide2 import QtGui, QtCore, QtUiTools, QtWidgets
from shiboken2 import wrapInstance
import maya.cmds as mc
import maya.OpenMayaUI as omui
def getMayaWindow():
""" pointer to the maya main window
"""
ptr = omui.MQtUtil.mainWindow()
if ptr is not None:
return shiboken2.wrapInstance2(long(ptr), QtWidgets.QWidget)
def run():
""" builds our UI
"""
global win
win = GeometryGenerator(parent=getMayaWindow())
win.show()
class GeometryGenerator(QtWidgets.QWidget):
def __init__(self,parent=None):
super(GeometryGenerator,self).__init__(parent)
【问题讨论】:
标签: python-2.7 qt maya pyside2 shiboken2