PySide 및 Python을 사용하여 간단한 QT 앱을 만들려고합니다. 필요하다면 3dsMax 스크립트, Modo 스크립트 및 독립 실행 형 앱으로 실행하고 싶습니다. 그래서 D : \ PyTest에 다음 파일을 저장했습니다. 이 테스트를위한 QLabel 일뿐입니다.3dsMax 및 Modo 용 PySide 위젯
(TestWidget.py)을 독립 실행 형으로 실행하면 정상적으로 작동합니다. Modo에서 시작하면 (ModoStart.py) 올바르게 시작되지만 Modo의 아무 곳이나 클릭하면 전체 창이 손상됩니다. SystemExit없이에서, 라인 (13), 역 추적 (마지막으로 가장 최근 통화) : : : 파일 "/ PyTest \ TestWidget.py D": 3dsMax의에서 나는 다음과 같은 오류가 -1
모든 아이디어를하는 것이 내가 할 수있는 방법 작동합니까?
감사합니다,
닉
TestWidget.py
import sys
from PySide import QtGui
def open_widget(app, parent_handle=None):
w = QtGui.QLabel()
w.setText("My Widget")
w.show()
if parent_handle is not None:
w.setParent(parent_handle)
sys.exit(app.exec_())
if __name__ == '__main__':
open_widget(QtGui.QApplication(sys.argv))
MaxStart.py
import sys
FileDir = 'D:/PyTest'
if FileDir not in sys.path:
sys.path.append(FileDir)
#Rest imports
from PySide import QtGui
import MaxPlus
import TestWidget
reload(TestWidget)
app = QtGui.QApplication.instance()
parent_handle = QtGui.QWidget(MaxPlus.GetQMaxWindow())
TestWidget.open_widget(app, parent_handle)
ModoStart.py
import sys
FileDir = 'D:/PyTest'
if FileDir not in sys.path:
sys.path.append(FileDir)
#Rest imports
from PySide import QtGui
import TestWidget
reload(TestWidget)
app = QtGui.QApplication.instance()
TestWidget.open_widget(app)
UPDATE : 나는 모든 세 가지 옵션에 대해 하나 개의 파일 (3dsMax의/모도/스탠드 형)가 시도
. 3dsMax와 Stand-Alone에서는 잘 작동하는 것으로 보이지만 Modo에서는 위젯 외부를 클릭하거나 닫으려고하면 Modo가 즉시 충돌합니다. 좋아
import sys
import traceback
from PySide import QtGui
handle = None
appMode = None
try:
import MaxPlus
appMode = '3dsMax'
handle = MaxPlus.GetQMaxWindow()
except:
try:
import lx
appMode = 'Modo'
except:
appMode = 'StandAlone'
app = QtGui.QApplication.instance()
if not app:
app = QtGui.QApplication([])
def main():
w = QtGui.QLabel(handle)
w.setText("My Widget")
w.resize(250, 100)
w.setWindowTitle('PySide Qt Window')
w.show()
try:
sys.exit(app.exec_())
except Exception, err:
traceback.print_exc()
pass
main()
당신은 전체 역 추적을 게시 할 수 있습니까? –
어떻게해야합니까? (미안해, 파이썬에 처음 온거야?) MaxStart.py에서 의 두 가지를 시도했습니다. 가져 오기 추적은 입니다. . 시도 : \t 응용 프로그램 = QtGui.QApplication.instance() \t parent_handle = QtGui.QWidget (MaxPlus.GetQMaxWindow()) \t TestWidget.Exception을 제외한 예외 : 오류 : traceback.print_exc() 및 TestWidget.py 가져 오기 추적 . . . 시도 : sys.exit (app.exec_()) 예외를 제외하고 , ERR : 3DSMAX에 만 다음 한 줄 것을 당신에게 말하고 있도록 traceback.print_exc() 아무것도는 어떤 차이 – Nick
아를 만드는 것? 미안 해요 3dsmax에 익숙하지 않습니다. –