【问题标题】:import Qt ui to Maya2020将 Qt ui 导入 Maya2020
【发布时间】: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


    【解决方案1】:

    我猜你需要用 Maya 自带的 python 运行你的脚本,并使用 Maya 自带的 pip 来安装包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-16
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      相关资源
      最近更新 更多