我的问题是我在Maya 2017中遇到的QDialog模块错误。
我正在使用Maya 2017来跟随Maya 2015中演示的PyQt for Maya课程。我安装了Qt.py,希望简化代码并避免PyQt4与PyQt5或PySide与PySide2之间的混淆。
所以,当我做的时候
print Qt
我在脚本编辑器中得到以下内容,因此假设一切都很好。
<module 'Qt' from 'C:/Users/chuang/Documents/maya/2017/scripts\Qt.pyc'>
然而,当我按照下面的演示在Maya 2015中通过以下方式成功拉出一个空窗口时:
import Qt.QtCore as qc
import Qt.QtGui as qg
dialog = qg.QDialog()
dialog.show()
我在2017年的Maya中做了同样的事情,并收到以下错误消息:
# Error: AttributeError: file <maya console> line 4: 'module' object has no attribute 'QDialog' #
我在这里想念一些东西(希望不是拼写错误:))?
我能在Maya 2017上工作的唯一方法就是:
import Qt.QtWidgets as qw
import Qt.QtCore as qc
import Qt.QtGui as qg
dialog = qw.QDialog()
dialog.show()
但我不明白为什么会这样。
答案 0 :(得分:1)
在Maya 2017和Maya 2018中,从QtGui
模块中取出了一堆内容,而是放在新的QtWidgets
模块中。所以你是对的,现在通过QtWidgets
工作。
import PySide2.QtWidgets as qw
import PySide2.QtCore as qc
import PySide2.QtGui as qg
dialog = qw.QDialog()
dialog.show()
阅读Fredrik Averpil关于PySide2
的精彩帖子:Dealing with Maya 2017 and PySide2。