2017-09-20 1 views
1

내 질문은 내가 마야에있어 인 QDialog 모듈 오류에 관한 2017인 QDialog 모듈 오류가 2017

내가 설치 마야 2015에서 데모 에드 인 PyQt는 마야에 대한 과정을 따라 마야 2017를 사용하고 있습니다 Qt.py는 코드를 간소화하고 PyQt4와 PyQt5 또는 PySide와 PySide2 사이의 혼동을 피하려고합니다.

그래서, 내가 스크립트 편집기에서 다음을 얻을

print Qt 

을 수행 할 때 그래서 모두가 좋은 가정합니다. 그러나

<module 'Qt' from 'C:/Users/chuang/Documents/maya/2017/scripts\Qt.pyc'> 

, 나는 성공적 마야 2015 년 아래로 빈 창을 끌어 데모를 수행 할 때 :

나는 마야 2017 년 같은를하고 아래의 오류 메시지를 받았습니다
import Qt.QtCore as qc 
import Qt.QtGui as qg 
dialog = qg.QDialog() 
dialog.show() 

:

# Error: AttributeError: file <maya console> line 4: 'module' object has no attribute 'QDialog' # 

나는 여기에 뭔가를 놓치고 있나?

import Qt.QtWidgets as qw 
import Qt.QtCore as qc 
import Qt.QtGui as qg 

dialog = qw.QDialog() 
dialog.show() 

을하지만 그것이 작동하는 이유는 이해가 안 : 나는 마야 2017에서 작동하도록 얻을 수

유일한 방법은 내가 할 경우입니다.

+0

Qt4에서 Qt5로 업그레이드 한 것처럼 보입니다. 문서에 대한 내용 외에는 아무 것도 할 수 없습니다. –

+0

예, Maya 2017 이후로 Qt4를 Qt5로 업그레이드 한 것을 알고 있습니다. 그래서 Qt.py를 모든 PyQt 라이브러리를 사용할 수 있기를 원하는 계층으로 설치했습니다. QQialog는 PyQt5의 QtWidgets 아래에 있으며 QtGui를 통해 전화를 걸려 고 시도한 이유를 설명합니다. 분명히 QtGui를 통해 Maya 2015 (PyQt4)에서 작동했습니다. –

답변

0

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() 

은 프레드릭 Averpil로 멋진 포스트에 대한 PySide2을 읽어 Dealing with Maya 2017 and PySide2.

+0

아 .. 알겠습니다. 앤디 감사합니다. Fredrik의 게시물을 확실히 읽을 것입니다. 건배. –