Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import maya.mel as mel
- import maya.OpenMayaUI as apiUI
- import os,sys, random
- try:
- from PySide2.QtCore import *
- from PySide2.QtGui import *
- from PySide2.QtWidgets import *
- from PySide2.QtUiTools import *
- from shiboken2 import wrapInstance
- except ImportError:
- from PySide2.QtCore import *
- from PySide2.QtGui import *
- from PySide2.QtWidgets import *
- from PySide2.QtUiTools import *
- from shiboken2 import wrapInstance
- def getMayaWindow():
- """
- Get the main Maya Window as a QtGui.QMainWindow instance
- """
- ptr = apiUI.MQtUtil.mainWindow()
- if ptr is not None:
- return wrapInstance(long(ptr), QWidget)
- class cgpWindow(QMainWindow):
- def __init__(self,parent= getMayaWindow()):
- super(cgpWindow,self).__init__()
- #Set variables
- self.setWindowTitle("PLUG IN SUNSHINE")
- self.winWidth = 300
- self.winHeight = 100
- self.setGeometry(10,20,self.winWidth,self.winHeight)
- self.setWindowFlags(Qt.Tool)
- self.setAttribute(Qt.WA_DeleteOnClose)
- self.setWindowFlags(Qt.WindowStaysOnTopHint)
- self.currentWidgets=[]
- #Set initialize
- self.initUI()
- def initUI(self):
- """
- Method for initializing the UI
- Create default MainWindow Widget
- """
- mainWidget= QWidget()
- self.mainLayout =QVBoxLayout()
- #Create items for the UI
- self.loadObjUi()
- self.loadCrvUi()
- self.executeAleatorio()
- self.CentrarObjeto()
- self.loadNumObjUi()
- self.loadComBox()
- """
- self.MinMaxToUi()
- self.RotarsToUi()
- self.TranslateToUi()
- self.ScalartsToUi()
- self.Ejecutar()
- """
- #Set signals and slots
- """self.loadObjButton.clicked.connect(self.mainLoadObj)
- self.loadCrvButton.clicked.connect(self.mainLoadObj)
- self.OrdenAleatorioButton.clicked.connect(self.randomizeTranslate)
- self.CenterButton.clicked.connect(self.randomizeTranslate)
- self.loadRotateButton.clicked.connect(self.executeOverideRotate)
- self.loadTranslateButton.clicked.connect(self.executeOverideTranslate)
- self.loadScalartsButton.clicked.connect(self.executeOverideScalarts)
- self.EjecutarButton.clicked.connect(self.AhoraSiEjecuta)"""
- #Partent Widget to Layout and Layout to QMainWindow
- mainWidget.setLayout(self.mainLayout)
- self.setCentralWidget(mainWidget)
- #Show UI
- self.show()
- def loadObjUi(self):
- """
- Method for adding the Ui elements for the Load Obj
- """
- #Label Items
- loadObjLabel= QLabel("Load Object:")
- #Line Edit Items
- self.loadObjLineEdit = QLineEdit()
- self.loadObjLineEdit.setEnabled(False)
- #Button Edit Items
- self.loadObjButton =QPushButton ("<< Load")
- self.loadObjButton.setToolTip("Selecciona uno o más objetos")
- #Create Layout
- loadObjLayout = QHBoxLayout()
- loadObjLayout.addWidget(loadObjLabel)
- loadObjLayout.addWidget(self.loadObjLineEdit)
- loadObjLayout.addWidget(self.loadObjButton)
- #Add layout to MainWindow
- self.mainLayout.addLayout(loadObjLayout)
- def loadCrvUi(self):
- """
- Método para insertar curva en el UI
- """
- #Label Items
- loadCrvLabel= QLabel("Agrega tu curva:")
- #Line Edit Items
- self.loadCrvLineEdit = QLineEdit()
- self.loadCrvLineEdit.setEnabled(False)
- #Button Edit Items
- self.loadCrvButton =QPushButton ("<< Load")
- self.loadCrvButton.setToolTip("Selecciona una o más curvas")
- #Create Layout
- loadCrvLayout = QHBoxLayout()
- loadCrvLayout.addWidget(loadCrvLabel)
- loadCrvLayout.addWidget(self.loadCrvLineEdit)
- loadCrvLayout.addWidget(self.loadCrvButton)
- #Add layout to MainWindow
- self.mainLayout.addLayout(loadCrvLayout)
- def executeAleatorio(self):
- """
- Method for executing oren Aleatorio
- """
- #Label Items
- loadOrdenAleatorioLabel= QLabel(" ")
- #Create Buttom
- self.OrdenAleatorioButton= QCheckBox ("Aleatorio")
- #Button Edit Items
- self.OrdenAleatorioButton.setToolTip("Orden en el que aparecen los objetos. Al desactivar será el orden de selección")
- #Parent Under main Layout
- OrdenAleatorioBtLayout =QHBoxLayout()
- OrdenAleatorioBtLayout.addWidget(loadOrdenAleatorioLabel)
- OrdenAleatorioBtLayout.addWidget(self.OrdenAleatorioButton)
- #Add layout to MainWindow
- self.mainLayout.addLayout(OrdenAleatorioBtLayout)
- def CentrarObjeto(self):
- """
- Method for Centrar Objeto
- """
- #Create Buttom
- self.CenterButton= QPushButton ("Centra tu Objeto")
- #Button Edit Items
- self.CenterButton.setToolTip("Colocar pivote en el centro del objeto")
- #Parent Under main Layout
- CenterBtLayout =QHBoxLayout()
- CenterBtLayout.addWidget(self.CenterButton)
- self.mainLayout.addLayout(CenterBtLayout)
- def loadNumObjUi(self):
- """
- Method for adding the Ui el numero de objetos que vas a agregar
- """
- #Label Items
- loadNumLabel= QLabel("# Objetos a crear")
- #Line Edit Items
- self.loadNumSpinBox = QSpinBox()
- self.loadNumSpinBox.setMaximum(1000)
- self.loadNumSpinBox.setMinimum(1)
- #Button Edit Items
- self.loadNumButton =QPushButton ("<< Load")
- self.loadNumButton.setToolTip("Cuantos objetos quieres crear")
- #Create Layout
- loadNumLayout = QHBoxLayout()
- loadNumLayout.addWidget(loadNumLabel)
- loadNumLayout.addWidget(self.loadNumSpinBox)
- loadNumLayout.addWidget(self.loadNumButton)
- #Add layout to MainWindow
- self.mainLayout.addLayout(loadNumLayout)
- def loadComBox(self):
- """
- Method for adding the Ui un combo box
- """
- #Button Edit Items
- self.loadComboBox =QComboBox()
- listaOpciones=["None","Orientar/Rotar","Trasladar","Escalar"]
- self.loadComboBox.insertItems(4,listaOpciones)
- self.loadComboBox.activated.connect(self.Seleccion)
- self.loadComboBox.setToolTip("Cambia para editar los objetos")
- #Create Layout
- loadComboBoxLayout = QHBoxLayout()
- loadComboBoxLayout.addWidget(self.loadComboBox)
- #Add layout to MainWindow
- self.mainLayout.addLayout(loadComboBoxLayout)
- def Seleccion(self):
- Opcion=self.loadComboBox.currentText()
- test = SecondPopWin(Opcion)
- #Antes de añadir nuevo Widget, borramos todos los que tenemos añadidos
- self.cleanWidget(self.currentWidgets)
- self.currentWidgets.append(test)
- self.mainLayout.addWidget(test)
- def cleanWidget(self,widget):
- for i in widget:
- self.mainLayout.removeWidget(i)
- i.setParent(None)
- widget.remove(i)
- #-----------------------------------------------------------
- #------------------------------------------------------------
- #---------------------------------------------------------
- """
- Clase para hacer un UI que aparezca y desaparezca según lo que se le pida
- """
- #-----------------------------------------------------------
- #------------------------------------------------------------
- #---------------------------------------------------------
- def showUi():
- global win
- try:
- win.close()
- except:
- pass
- win = cgpWindow()
- showUi()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement