회원 로그인
|
.ui 로드 예제
.ui 로드 예제
:마야에서 ui파일을 PySide2를 이용하여 불러와본다.
참고
https://forums.autodesk.com/t5/maya-programming/examples-of-workspace-control-in-python/td-p/6931336
:마야에서 ui파일을 PySide2를 이용하여 불러와본다.
- 메인 윈도우, 독 위젯, 위젯을 만든다.
- 독 위젯은 Channel Box 등의 탭에 붙지 않는다.
- Qt Designer에서 ui 생성
- /내문서/maya/Script/DEMO/DEMO.ui 위치
- 코드 작성 시
- Window와 Widget은 QtWidgets.QMainWindow
- Dock Widget은 QtWidgets.QDockWidget
# -*- coding: utf-8 -*- from maya import OpenMayaUI as omui import os from maya import cmds, mel #import pymel.core as pm try: from PySide2 import QtCore, QtUiTools, QtGui, QtWidgets from PySide2 import __version__ from shiboken2 import wrapInstance except ImportError: from PySide import QtUiTools, QtCore, QtGui from PySide import __version__ from shiboken import wrapInstance #공통 mayaMainWindowAdr = omui.MQtUtil.mainWindow() mayaMainWindow = wrapInstance(long(mayaMainWindowAdr), QtWidgets.QWidget) #마야 메인 윈도우 class DemoWindow(QtWidgets.QMainWindow): def __init__(self): self.SCRIPT_LOCATION = os.path.join(os.environ['HOME'], "maya", "Scripts", "DEMO") self.ui = None self.build_ui() def build_ui(self): QtWidgets.QMainWindow.__init__(self) #창이 띄어져 있는지 for mMW in mayaMainWindow.findChildren(QtWidgets.QMainWindow): if mMW.objectName() == "DemoQMainWindow": #.ui의 QMainWindow의 오브젝트명 mMW.deleteLater() loader = QtUiTools.QUiLoader() self.ui = loader.load(os.path.join(self.SCRIPT_LOCATION, 'DEMO.ui'), parentWidget=mayaMainWindow) self.ui.show() DEMO = DemoWindow() #dock위젯 from maya.app.general.mayaMixin import MayaQWidgetDockableMixin class DemoDockWidget(MayaQWidgetDockableMixin, QtWidgets.QMainWindow): def __init__(self): #super(DemoWidget, self).__init__(parent) self.SCRIPT_LOCATION = os.path.join(os.environ['HOME'], 'maya', 'Scripts', 'DEMO') self.ui = None self.build_ui() def build_ui(self): QtWidgets.QMainWindow.__init__(self) #창이 띄어져 있는지 for mMW in mayaMainWindow.findChildren(QtWidgets.QDockWidget): if mMW.objectName() == 'DemoQDockWidget': #.ui의 QDockWidget의 오브젝트명 mMW.deleteLater() loader = QtUiTools.QUiLoader() self.ui = loader.load(os.path.join(self.SCRIPT_LOCATION, 'DEMO2.ui'), parentWidget=mayaMainWindow) self.ui.show() DEMO2 = DemoDockWidget() #위젯 class DemoWidget(QtWidgets.QMainWindow): def __init__(self): self.SCRIPT_LOCATION = os.path.join(os.environ['HOME'], "maya", "Scripts", "DEMO") self.ui = None self.build_ui() def build_ui(self): QtWidgets.QMainWindow.__init__(self) #창이 띄어져 있는지 for mMW in mayaMainWindow.findChildren(QtWidgets.QMainWindow): if mMW.objectName() == "DemoQWidget": #.ui의 QWidget의 오브젝트명 mMW.deleteLater() loader = QtUiTools.QUiLoader() self.ui = loader.load(os.path.join(self.SCRIPT_LOCATION, 'DEMO3.ui')) #, parentWidget=mayaMainWindow) self.ui.show() DEMO3 = DemoWidget()
런타임 에러 Object's name 'MY_CUSTOM_UIWorkspaceControl' is not unique. ui명령을 설정하는 편집 플래그를 잊어버렸다. https://stackoverflow.com/questions/30973730/python-for-maya-objects-name-is-not-unique-when-calling-object-from-class-t |
참고
https://forums.autodesk.com/t5/maya-programming/examples-of-workspace-control-in-python/td-p/6931336
댓글 0개
| 엮인글 0개
260개(6/13페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
마야 뷰포트 네비게이션 팁 | 푸딩뱃살 | 45356 | 2020.04.06 17:22 | |
Maya 버전 별 Python 버전 | 푸딩뱃살 | 66064 | 2014.01.08 17:59 | |
158 | [Base] 마야 설정 파일을 svn으로 동기화 하기 | 푸딩뱃살 | 2631 | 2018.03.23 22:58 |
157 | [Script] FBX Command | 푸딩뱃살 | 2785 | 2018.03.23 12:22 |
156 | [Script] PyQt와 PySide의 클래스명 차이 | 푸딩뱃살 | 4496 | 2018.03.12 18:56 |
155 | [Script] channelbox | 푸딩뱃살 | 2740 | 2018.03.05 17:08 |
154 | [Base] The Morph Target object's controlling slider may not hav | 푸딩뱃살 | 3496 | 2018.03.05 11:33 |
>> | [Script] .ui 로드 예제 | 푸딩뱃살 | 3824 | 2018.03.02 18:52 |
152 | [오류] Warning: Unable to export some material(s) | 푸딩뱃살 | 2519 | 2018.03.02 12:56 |
151 | [Base] 일부 BlendShape 적용된 FBX 익스포트 | 푸딩뱃살 | 2876 | 2018.02.28 18:25 |
150 | [Rigging] skinCluster의 영향 | 푸딩뱃살 | 3103 | 2018.02.22 16:16 |
149 | [Script] skinCluster, skinPercent 예제 | 푸딩뱃살 | 3262 | 2018.02.21 11:40 |
148 | [Script] PySide2 예제 | 푸딩뱃살 | 4383 | 2018.02.21 11:30 |
147 | [Script] polyListComponentConversion | 푸딩뱃살 | 3506 | 2018.02.20 17:28 |
146 | [Base] Maya Axis & UE4 Axis | 푸딩뱃살 | 2819 | 2018.01.31 15:04 |
145 | [오류] apex 익스포트 시 경고 with Maya2017 | 푸딩뱃살 | 2874 | 2018.01.26 18:49 |
144 | [Plugin] AnimShader library | 푸딩뱃살 | 3766 | 2018.01.23 11:25 |
143 | [Script] PyMel, cmds와 OpenMaya 처리 속도는? | 푸딩뱃살 | 4469 | 2018.01.23 10:51 |
142 | [오류] Warning: Nucleus evaluation skipped, frame change too la | 푸딩뱃살 | 4176 | 2018.01.19 11:50 |
141 | [Plugin] Mesh Reorder / Transfer vertex position Tool - Mesh Pick | 푸딩뱃살 | 3581 | 2018.01.17 16:35 |
140 | [Base] Maya Help 크롬으로 열기 | 푸딩뱃살 | 2977 | 2018.01.15 15:44 |
139 | [Script] filterExpand | 푸딩뱃살 | 3573 | 2018.01.14 03:56 |