728x90
파일탐색기
Pyside2를 사용하지 않고 파일을 불러와봤습니다.
from pymxs import runtime as rt
path = os.path.dirname(os.path.abspath(__file__))
path_to_file = rt.getOpenFileName(caption="Open A Test Excel:", filename=path+'\\')
폴더경로를 가져올려면 아래처럼 하시면 됩니다.
from pymxs import runtime as rt
rtrt = rt.getSavepath()
print rtrt
Dialog Example
max gui는 pyside2 를 사용하는데, 아주 좋은 문서가 나왔습니다.
저걸 보고 Dialog 창을 만들어봤습니다.
from PySide2.QtWidgets import QDialog, QPushButton, QVBoxLayout, QLabel, QLineEdit
class MyDialog(QDialog):
def __init__(self, parent=None):
super(MyDialog, self).__init__(parent)
self.setWindowTitle('Hello, Velbie!')
self.setupUi()
def setupUi(self):
verticalLayout = QVBoxLayout()
self.resize(273, 100)
label = QLabel('hello')
verticalLayout.addWidget(label)
lineEdit = QLineEdit()
lineEdit.setReadOnly(True)
lineEdit.setText("Heelo")
verticalLayout.addWidget(lineEdit)
ok_button = QPushButton("Ok")
ok_button.clicked.connect(self.accept)
verticalLayout.addWidget(ok_button)
self.setLayout(verticalLayout)
if __name__ == '__main__':
dialog = MyDialog()
dialog.show()
if dialog.exec_():
print 'helo'
항상 위에 띄우기
3ds max 에서 GUI 플러그인을 만들다면 반드시 이 속성을 활용해야 합니다.
from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *
class helloWindow(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent, Qt.WindowStaysOnTopHint)
label = QLabel("Hello World",self)
dialog = helloWindow()
dialog.show()
외부파일 reload
3ds max 에서 import 된 파일을 수정하면, 3ds max를 껐다 켜야 수정된 내용이 스크립트에 적용됩니다.
이런 현상은 runtime이여서 발생하는 것 같습니다.
그래서 imp 모둘을 이용해서 reload 해주면 됩니다.
import imp
from mypackage import mymodule
imp.reload(mymodule)
관련자료
맥스스크립트 File Dialogs:
help.autodesk.com/view/3DSMAX/2017/ENU/?guid=__files_GUID_D4B43A33_8342_4BC9_80AB_91460861D37C_htm
Pyside2:
메뉴만들기:
github.com/ADN-DevTech/3dsMax-Python-HowTos/tree/master/src/packages/menuhook
728x90