【发布时间】:2017-09-21 02:46:30
【问题描述】:
我的问题是关于我在 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()
我在 Maya 2017 中做了同样的事情并收到以下错误消息:
# 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()
但我不明白它为什么起作用。
【问题讨论】:
-
看起来从 Qt4 升级到 Qt5。除了跟上文档,您无能为力。
-
是的,我知道自 Maya 2017 以来 Qt4 升级到 Qt5,这就是为什么我将 Qt.py 作为分层安装,希望能够使用任何 PyQt 库。似乎 QDialog 在 PyQt5 中的 QtWidgets 下,这可能解释了为什么它对我不起作用尝试通过 QtGui 调用它。显然,它通过 QtGui 在 Maya 2015 (PyQt4) 中工作。