I'm new guy with Pyside, i'm trying to create the plugin for 3DsMax 2015. Now i have a trouble with Cancel Button
I have a "Main Form"
When i click the "Add new objects", i will show the new form. We can call it is "Sub Form"
When i click button "Cancel" , All application is quit, 3Dsmax2 015 also. I just want to quit the "Sub Form".
This is my code :
from PySide import QtGui,QtCore
import MaxPlus
import sys
class _GCProtector(object):
widgets = []
app = QtGui.QApplication.instance()
if not app:
app = QtGui.QApplication([])
def main():
MaxPlus.FileManager.Reset(True)
w = QtGui.QWidget()
w.setFixedSize(300,360)
w.setWindowTitle('Library')
_GCProtector.widgets.append(w)
w.show()
main_layout = QtGui.QGridLayout()
main_layout.addWidget(First(),0,0,2,0)
w.setLayout(main_layout)
def First():
# FIRST FRAME
FirstFrame = QtGui.QFrame()
FirstFrame.setMaximumWidth(230)
FirstFrame.setMaximumHeight(700)
# LABEL RENDERER
renderer_lb = QtGui.QLabel("Renderer :")
# COMBOBOX RENDERER
renderer_cbx = QtGui.QComboBox()
renderer_cbx.addItem("Vray")
renderer_cbx.addItem("Octane")
# LABEL FOLDER
folders_lb = QtGui.QLabel("Folder :")
# LIST VIEW FOLDER
folders_lv = QtGui.QListView()
# BUTTON ADD NEW OBJECTS
addnewobject_btn = QtGui.QPushButton("Add New Objects")
# BUTTON NEW SET
newset_btn = QtGui.QPushButton("New Set")
# DEFINE THE FUNCTION FOR FIRST FRAME
Firstbox = QtGui.QGridLayout()
Firstbox.addWidget(renderer_lb,0,0)
Firstbox.addWidget(renderer_cbx,0,1,1,3)
Firstbox.addWidget(folders_lb,2,0,1,4)
Firstbox.addWidget(folders_lv,3,0,1,4)
Firstbox.addWidget(addnewobject_btn,4,0,1,2)
Firstbox.addWidget(newset_btn,4,3)
Firstbox.setColumnStretch(1, 1)
FirstFrame.setLayout(Firstbox)
#++++++++++++++++++++ COMMAND ++++++++++++++++++++
addnewobject_btn.clicked.connect(addnewobject)
newset_btn.clicked.connect(newset)
return FirstFrame
#---------------------------------------------------------------------
def addnewobject():
w = QtGui.QWidget()
w.setFixedSize(450,90)
w.setWindowTitle('Select folder of new objects')
_GCProtector.widgets.append(w)
w.show()
# LABEL FOLDER
folder_lb = QtGui.QLabel("Folder : ")
# TEXT EDIT OF LINK FOLDER
linkfolder_txt = QtGui.QLineEdit()
# BUTTON BROWSE
browse_btn=QtGui.QPushButton("Browse...")
# LABEL EXAMPLE
ex_lb = QtGui.QLabel("( ex : SCH, faucet, K7 )")
# BUTTON CANCEL
cancel_btn = QtGui.QPushButton("Cancel")
# BUTTON OK
ok_btn = QtGui.QPushButton("OK")
# DEFINE THE FUNCTION FOR ADD NEW OBJECT WIDEGET
browser = QtGui.QGridLayout()
browser.addWidget(folder_lb,0,0)
browser.addWidget(linkfolder_txt,0,1,1,4)
browser.addWidget(browse_btn,0,5)
browser.addWidget(ex_lb,1,0,1,5)
browser.addWidget(cancel_btn,2,4)
browser.addWidget(ok_btn,2,5)
browser.setColumnStretch(1, 1)
w.setLayout(browser)
#++++++++++++++++++++ COMMAND ++++++++++++++++++++
cancel_btn.clicked.connect(quitApp)
#---------------------------------------------------------------------
def quitApp():
quit()
if __name__ == '__main__':
main()
And please give me the advise how to unavailable the "Main Form" when the "Sub Form" is opened, cause when "Sub Form" is opened, i still can push the "Add new objects" on the "Main Form" it open many "Sub Form".
Thanks so much .