회원 로그인
|
pyuic5 사용 for Maya
pyuic5 사용 for Maya
변환 예제
:Qt Designer로 만든 .ui 파일을 .py 파일로 변환한다.
마야2017 (Update4) 기준으로 작성되었다. |
- 이슈
- Python 2.7.x를 사용
- PyQt5를 사용 (보통 Python 3.x와 함께 사용된다.)
- PyQt5의 충돌 문제가 있을 수 있으므로 마야에 맞게(PySide2) 변환된 py 스크립트 수정하기를 요망된다.
- sip / PyQt5 빌드 for Maya 2017에서 잠깐 소개
- 준비
- C:\Program Files\Autodesk\Maya2017\Python 폴더의 pyuic5.bat 파일을 적당한 곳에 복사한다.
- pyuic5.bat 파일을 메모장으로 연다
- 절대 경로로 수정한다
원본
@m:\bin\mayapy.exe -m PyQt5.uic.pyuic %1 %2 %3 %4 %5 %6 %7 %8 %9
수정
C:\Progra~1\Autodesk\Maya2017\bin\mayapy.exe -m PyQt5.uic.pyuic %1 %2 %3 %4 %5 %6 %7 %8 %9
또는 (bat에 드래그하여 변환할 경우)
C:\Progra~1\Autodesk\Maya2017\bin\mayapy.exe -m PyQt5.uic.pyuic -x %1 -o %1 - 변환
- ui파일을 bat파일이 있는 곳으로 넣는다.
- 명령 프롬프트를 실행한다.
- 검색 cmd 실행 (관리자 실행은 cmd 입력 후 ctrl+shift 누른 상태에서 엔터)
- 윈도우키+r키 cmd 실행
- 경로로 이동 후 변환한다.
pyuic5.bat -x main_window.ui -o main_window.py
변환 예제
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'cleanInfluence.ui' # # Created by: PyQt5 UI code generator 5.8.2 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(309, 169) self.centralwidget0 = QtWidgets.QWidget(MainWindow) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.centralwidget0.sizePolicy().hasHeightForWidth()) self.centralwidget0.setSizePolicy(sizePolicy) self.centralwidget0.setMinimumSize(QtCore.QSize(300, 128)) self.centralwidget0.setBaseSize(QtCore.QSize(0, 0)) self.centralwidget0.setObjectName("centralwidget0") self.gridLayout = QtWidgets.QGridLayout(self.centralwidget0) self.gridLayout.setContentsMargins(5, 5, 5, 5) self.gridLayout.setSpacing(6) self.gridLayout.setObjectName("gridLayout") self.horizontalLayout2 = QtWidgets.QHBoxLayout() self.horizontalLayout2.setObjectName("horizontalLayout2") self.pushButton1 = QtWidgets.QPushButton(self.centralwidget0) self.pushButton1.setObjectName("pushButton1") self.horizontalLayout2.addWidget(self.pushButton1) self.pushButton2 = QtWidgets.QPushButton(self.centralwidget0) self.pushButton2.setObjectName("pushButton2") self.horizontalLayout2.addWidget(self.pushButton2) self.pushButton3 = QtWidgets.QPushButton(self.centralwidget0) self.pushButton3.setObjectName("pushButton3") self.horizontalLayout2.addWidget(self.pushButton3) self.gridLayout.addLayout(self.horizontalLayout2, 2, 0, 1, 1) self.progressBar0 = QtWidgets.QProgressBar(self.centralwidget0) self.progressBar0.setProperty("value", 0) self.progressBar0.setObjectName("progressBar0") self.gridLayout.addWidget(self.progressBar0, 4, 0, 1, 1) self.horizontalLayout0 = QtWidgets.QHBoxLayout() self.horizontalLayout0.setSpacing(6) self.horizontalLayout0.setObjectName("horizontalLayout0") self.label0 = QtWidgets.QLabel(self.centralwidget0) self.label0.setObjectName("label0") self.horizontalLayout0.addWidget(self.label0) self.horizontalSlider = QtWidgets.QSlider(self.centralwidget0) self.horizontalSlider.setMinimum(1) self.horizontalSlider.setMaximum(10) self.horizontalSlider.setProperty("value", 4) self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) self.horizontalSlider.setObjectName("horizontalSlider") self.horizontalLayout0.addWidget(self.horizontalSlider) self.label1 = QtWidgets.QLabel(self.centralwidget0) self.label1.setObjectName("label1") self.horizontalLayout0.addWidget(self.label1) self.gridLayout.addLayout(self.horizontalLayout0, 0, 0, 1, 1) self.horizontalLayout1 = QtWidgets.QHBoxLayout() self.horizontalLayout1.setObjectName("horizontalLayout1") self.label3 = QtWidgets.QLabel(self.centralwidget0) self.label3.setObjectName("label3") self.horizontalLayout1.addWidget(self.label3) self.lineEdit = QtWidgets.QLineEdit(self.centralwidget0) self.lineEdit.setObjectName("lineEdit") self.horizontalLayout1.addWidget(self.lineEdit) self.pushButton0 = QtWidgets.QPushButton(self.centralwidget0) self.pushButton0.setObjectName("pushButton0") self.horizontalLayout1.addWidget(self.pushButton0) self.gridLayout.addLayout(self.horizontalLayout1, 1, 0, 1, 1) spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem, 3, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget0) self.menubar0 = QtWidgets.QMenuBar(MainWindow) self.menubar0.setGeometry(QtCore.QRect(0, 0, 309, 21)) self.menubar0.setObjectName("menubar0") self.menuEdit = QtWidgets.QMenu(self.menubar0) self.menuEdit.setObjectName("menuEdit") MainWindow.setMenuBar(self.menubar0) self.statusbar0 = QtWidgets.QStatusBar(MainWindow) self.statusbar0.setObjectName("statusbar0") MainWindow.setStatusBar(self.statusbar0) self.actionSave_Settings = QtWidgets.QAction(MainWindow) self.actionSave_Settings.setObjectName("actionSave_Settings") self.actionReset_Settings = QtWidgets.QAction(MainWindow) self.actionReset_Settings.setObjectName("actionReset_Settings") self.menuEdit.addAction(self.actionSave_Settings) self.menuEdit.addAction(self.actionReset_Settings) self.menubar0.addAction(self.menuEdit.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.pushButton1.setText(_translate("MainWindow", "PushButton")) self.pushButton2.setText(_translate("MainWindow", "PushButton")) self.pushButton3.setText(_translate("MainWindow", "PushButton")) self.label0.setText(_translate("MainWindow", "TextLabel")) self.label1.setText(_translate("MainWindow", "TextLabel")) self.label3.setText(_translate("MainWindow", "TextLabel")) self.pushButton0.setText(_translate("MainWindow", "PushButton")) self.menuEdit.setTitle(_translate("MainWindow", "Edit")) self.actionSave_Settings.setText(_translate("MainWindow", "Save Settings")) self.actionReset_Settings.setText(_translate("MainWindow", "Reset Settings")) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())임시 PySide2로 수정(하이라이트)
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'cleanInfluence.ui' # # Created by: PyQt5 UI code generator 5.8.2 # # WARNING! All changes made in this file will be lost! from PySide2 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(309, 169) self.centralwidget0 = QtWidgets.QWidget(MainWindow) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.centralwidget0.sizePolicy().hasHeightForWidth()) self.centralwidget0.setSizePolicy(sizePolicy) self.centralwidget0.setMinimumSize(QtCore.QSize(300, 128)) self.centralwidget0.setBaseSize(QtCore.QSize(0, 0)) self.centralwidget0.setObjectName("centralwidget0") self.gridLayout = QtWidgets.QGridLayout(self.centralwidget0) self.gridLayout.setContentsMargins(5, 5, 5, 5) self.gridLayout.setSpacing(6) self.gridLayout.setObjectName("gridLayout") self.horizontalLayout2 = QtWidgets.QHBoxLayout() self.horizontalLayout2.setObjectName("horizontalLayout2") self.pushButton1 = QtWidgets.QPushButton(self.centralwidget0) self.pushButton1.setObjectName("pushButton1") self.horizontalLayout2.addWidget(self.pushButton1) self.pushButton2 = QtWidgets.QPushButton(self.centralwidget0) self.pushButton2.setObjectName("pushButton2") self.horizontalLayout2.addWidget(self.pushButton2) self.pushButton3 = QtWidgets.QPushButton(self.centralwidget0) self.pushButton3.setObjectName("pushButton3") self.horizontalLayout2.addWidget(self.pushButton3) self.gridLayout.addLayout(self.horizontalLayout2, 2, 0, 1, 1) self.progressBar0 = QtWidgets.QProgressBar(self.centralwidget0) self.progressBar0.setProperty("value", 0) self.progressBar0.setObjectName("progressBar0") self.gridLayout.addWidget(self.progressBar0, 4, 0, 1, 1) self.horizontalLayout0 = QtWidgets.QHBoxLayout() self.horizontalLayout0.setSpacing(6) self.horizontalLayout0.setObjectName("horizontalLayout0") self.label0 = QtWidgets.QLabel(self.centralwidget0) self.label0.setObjectName("label0") self.horizontalLayout0.addWidget(self.label0) self.horizontalSlider = QtWidgets.QSlider(self.centralwidget0) self.horizontalSlider.setMinimum(1) self.horizontalSlider.setMaximum(10) self.horizontalSlider.setProperty("value", 4) self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) self.horizontalSlider.setObjectName("horizontalSlider") self.horizontalLayout0.addWidget(self.horizontalSlider) self.label1 = QtWidgets.QLabel(self.centralwidget0) self.label1.setObjectName("label1") self.horizontalLayout0.addWidget(self.label1) self.gridLayout.addLayout(self.horizontalLayout0, 0, 0, 1, 1) self.horizontalLayout1 = QtWidgets.QHBoxLayout() self.horizontalLayout1.setObjectName("horizontalLayout1") self.label3 = QtWidgets.QLabel(self.centralwidget0) self.label3.setObjectName("label3") self.horizontalLayout1.addWidget(self.label3) self.lineEdit = QtWidgets.QLineEdit(self.centralwidget0) self.lineEdit.setObjectName("lineEdit") self.horizontalLayout1.addWidget(self.lineEdit) self.pushButton0 = QtWidgets.QPushButton(self.centralwidget0) self.pushButton0.setObjectName("pushButton0") self.horizontalLayout1.addWidget(self.pushButton0) self.gridLayout.addLayout(self.horizontalLayout1, 1, 0, 1, 1) spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem, 3, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget0) self.menubar0 = QtWidgets.QMenuBar(MainWindow) self.menubar0.setGeometry(QtCore.QRect(0, 0, 309, 21)) self.menubar0.setObjectName("menubar0") self.menuEdit = QtWidgets.QMenu(self.menubar0) self.menuEdit.setObjectName("menuEdit") MainWindow.setMenuBar(self.menubar0) self.statusbar0 = QtWidgets.QStatusBar(MainWindow) self.statusbar0.setObjectName("statusbar0") MainWindow.setStatusBar(self.statusbar0) self.actionSave_Settings = QtWidgets.QAction(MainWindow) self.actionSave_Settings.setObjectName("actionSave_Settings") self.actionReset_Settings = QtWidgets.QAction(MainWindow) self.actionReset_Settings.setObjectName("actionReset_Settings") self.menuEdit.addAction(self.actionSave_Settings) self.menuEdit.addAction(self.actionReset_Settings) self.menubar0.addAction(self.menuEdit.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.pushButton1.setText(_translate("MainWindow", "PushButton")) self.pushButton2.setText(_translate("MainWindow", "PushButton")) self.pushButton3.setText(_translate("MainWindow", "PushButton")) self.label0.setText(_translate("MainWindow", "TextLabel")) self.label1.setText(_translate("MainWindow", "TextLabel")) self.label3.setText(_translate("MainWindow", "TextLabel")) self.pushButton0.setText(_translate("MainWindow", "PushButton")) self.menuEdit.setTitle(_translate("MainWindow", "Edit")) self.actionSave_Settings.setText(_translate("MainWindow", "Save Settings")) self.actionReset_Settings.setText(_translate("MainWindow", "Reset Settings")) if __name__ == "__main__": import sys app = QtWidgets.QApplication.instance() MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() #sys.exit(app.exec_()) 종료 관련된 주석 처리
참고
댓글 0개
| 엮인글 0개
285개(4/15페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
225 | [Swift] Creating Face-Based AR Experiences | 푸딩뱃살 | 1813 | 2018.09.04 11:01 |
224 | [Python] qt4 progressbar 예제 | 푸딩뱃살 | 2910 | 2018.08.25 13:18 |
223 | [Java] JavaScript 기초 | 푸딩뱃살 | 1123 | 2018.08.19 17:09 |
222 | [PHP] echo와 print_r 차이점 | 푸딩뱃살 | 2531 | 2018.05.19 03:10 |
221 | [Python] 파이썬 GC(Garbage Collection) | 푸딩뱃살 | 2432 | 2018.04.25 15:47 |
220 | [Python] if __name__ == '__main__': | 푸딩뱃살 | 2670 | 2018.04.16 17:52 |
219 | [Python] 삼항 조건 연산자 (Ternary Operator) | 푸딩뱃살 | 2373 | 2018.04.16 17:41 |
218 | [Python] Non-ASCII character 에러 | 푸딩뱃살 | 3079 | 2018.04.16 16:49 |
217 | [VisualStudio] Visual Studio Community 설치 파일 (다운로드형) | 푸딩뱃살 | 2446 | 2018.04.10 09:54 |
216 | [Python] QProgressBar Stylesheet | 푸딩뱃살 | 3073 | 2018.03.20 15:15 |
215 | [Python] 컨커런시(Concurrency) | 푸딩뱃살 | 3664 | 2018.03.14 12:36 |
214 | [Python] 데코레이터(Decorator) @ | 푸딩뱃살 | 2375 | 2018.03.14 11:09 |
213 | [Python] os.environ | 푸딩뱃살 | 2212 | 2018.03.02 18:05 |
212 | [Python] A QApplication instance already exists. | 푸딩뱃살 | 2774 | 2018.02.21 16:44 |
>> | [Python] pyuic5 사용 for Maya | 푸딩뱃살 | 3365 | 2018.02.21 12:28 |
210 | [Qt] Qt Training - Qt Essentials Self-Study Pack | 푸딩뱃살 | 1685 | 2018.01.24 18:07 |
209 | [Python] list형을 dictionary형으로 형변환 | 푸딩뱃살 | 5709 | 2018.01.22 18:08 |
208 | [Python] 개발 가상 환경을 위한 virtualenv | 푸딩뱃살 | 2548 | 2017.12.26 15:22 |
207 | [Python] Qt.py .ui파일 불러오기 | 푸딩뱃살 | 2606 | 2017.11.09 17:15 |
206 | [Python] 환경 변수 추가 | 푸딩뱃살 | 2092 | 2017.11.09 17:10 |