회원 로그인
|
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개(1/15페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
285 | [Python] 동적 import - 모듈을 변수로 받아오기 | 푸딩뱃살 | 405 | 2022.10.27 10:45 |
284 | [Python] 파이썬 3.7.7과 3.9.7의 os.path.expanduser() 차이 | 푸딩뱃살 | 440 | 2022.08.18 12:22 |
283 | [Python] error: Microsoft Visual C++ 9.0 is required. | 푸딩뱃살 | 659 | 2022.08.03 13:35 |
282 | [Python] pyscript | 푸딩뱃살 | 434 | 2022.06.09 11:21 |
281 | [Python] float is / float not is | 푸딩뱃살 | 581 | 2022.03.02 15:03 |
280 | [Python] 이터널 문자열 f | 푸딩뱃살 | 811 | 2022.01.27 16:35 |
279 | [Python] is와 ==의 차이 | 푸딩뱃살 | 475 | 2021.11.25 15:54 |
278 |
[Python] Error: ImportError: file |
푸딩뱃살 | 891 | 2021.11.16 11:24 |
277 | [Python] 파이썬 디컴파일 - uncompyle6 | 푸딩뱃살 | 750 | 2021.11.10 14:46 |
276 | [Python] 파이썬 확장자 설명 | 푸딩뱃살 | 537 | 2021.11.03 14:38 |
275 | [참고] 웹 fbx 뷰어 | 푸딩뱃살 | 456 | 2021.10.19 15:46 |
274 | [Python] enumerate() | 푸딩뱃살 | 487 | 2021.10.13 14:44 |
273 | [Python] 아나콘다에서 가상 환경 | 푸딩뱃살 | 695 | 2020.11.21 00:26 |
272 | [Python] pip로 설치 때 퍼미션 에러 | 푸딩뱃살 | 1247 | 2020.06.06 17:13 |
271 | [Python] OpenCV 10-3. 이미지 Thresholding - Otsu's Binarizatio | 푸딩뱃살 | 657 | 2020.06.05 14:01 |
270 | [Python] OpenCV 10-2. 이미지 Thresholding - Adaptive Threshold | 푸딩뱃살 | 678 | 2020.06.05 13:58 |
269 | [Python] OpenCV 10-1. 이미지 Thresholding | 푸딩뱃살 | 569 | 2020.06.05 13:56 |
268 | [Python] OpenCV 9-2. 색 추적 | 푸딩뱃살 | 743 | 2020.06.02 23:29 |
267 | [Python] OpenCV 9-1. 색공간 바꾸기 | 푸딩뱃살 | 630 | 2020.06.02 23:27 |
266 | [Python] OpenCV 8-3. 이미지 비트 연산 | 푸딩뱃살 | 512 | 2020.06.02 23:21 |