How can i create a increment/decrement text box using python script in maya?

How can i create a increment/decrement text box using python script in maya?

Anonymous
Not applicable
2,227 Views
5 Replies
Message 1 of 6

How can i create a increment/decrement text box using python script in maya?

Anonymous
Not applicable

Please anyone tell me  ?

 

Increment/decrement text box 

 

form.jpg

0 Likes
2,228 Views
5 Replies
Replies (5)
Message 2 of 6

psudeepth
Explorer
Explorer

I have done the same window in maya using PySide2. The code is as follows

 

from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *
import shiboken2
import maya.cmds as cmds
import maya.OpenMayaUI as mui

# Converted from UI file to python
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(201, 96)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.horizontalLayout = QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.label = QLabel(self.centralwidget)
        self.label.setObjectName("label")
        self.horizontalLayout.addWidget(self.label)
        self.spinBox = QSpinBox(self.centralwidget)
        self.spinBox.setMinimum(1)
        self.spinBox.setMaximum(100)
        self.spinBox.setValue(100)
        self.spinBox.setObjectName("spinBox")
        self.horizontalLayout.addWidget(self.spinBox)
        self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
        self.horizontalLayout_2 = QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.label_2 = QLabel(self.centralwidget)
        self.label_2.setObjectName("label_2")
        self.horizontalLayout_2.addWidget(self.label_2)
        self.spinBox_2 = QSpinBox(self.centralwidget)
        self.spinBox_2.setMinimum(1)
        self.spinBox_2.setMaximum(100)
        self.spinBox_2.setValue(15)
        self.spinBox_2.setObjectName("spinBox_2")
        self.horizontalLayout_2.addWidget(self.spinBox_2)
        self.gridLayout.addLayout(self.horizontalLayout_2, 1, 0, 1, 1)
        self.horizontalLayout_3 = QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.label_3 = QLabel(self.centralwidget)
        self.label_3.setObjectName("label_3")
        self.horizontalLayout_3.addWidget(self.label_3)
        self.spinBox_3 = QSpinBox(self.centralwidget)
        self.spinBox_3.setMinimum(1)
        self.spinBox_3.setMaximum(100)
        self.spinBox_3.setValue(80)
        self.spinBox_3.setObjectName("spinBox_3")
        self.horizontalLayout_3.addWidget(self.spinBox_3)
        self.gridLayout.addLayout(self.horizontalLayout_3, 2, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QApplication.translate("MainWindow", "MainWindow", None))
        self.label.setText(QApplication.translate("MainWindow", "Tempruture :", None))
        self.label_2.setText(QApplication.translate("MainWindow", "Pressure :", None))
        self.label_3.setText(QApplication.translate("MainWindow", "Speed :", None))

def maya_main_window():
	main_window_ptr = mui.MQtUtil.mainWindow()
	return shiboken2.wrapInstance(long(main_window_ptr), QWidget)
	
class Form1Class(QMainWindow, Ui_MainWindow):
	
	def __init__(self, parent=maya_main_window()):
		
		super(Form1Class, self).__init__(parent)
		self.setupUi(self)
		
if __name__ == "__main__":
	
	win = Form1Class()
	win.show()

I hope this will solve the issue.

Message 3 of 6

Anonymous
Not applicable

Thanks for your response.I ran your code but Its giving error : No module pyside2

0 Likes
Message 4 of 6

psudeepth
Explorer
Explorer

Which version of maya are you using? The code will work in maya 2017/18

0 Likes
Message 5 of 6

Anonymous
Not applicable

I am using maya2014

0 Likes
Message 6 of 6

rajasekaransurjen
Collaborator
Collaborator

Hi,

Try this

 

import maya.cmds as cmds

rsWin = cmds.window()
rsForm = cmds.formLayout( numberOfDivisions=100 )
rsText = cmds.text( label='Number : ' )
rsTxtFld = cmds.intField()
rsClmLyt = cmds.columnLayout()
rsBut1 = cmds.button( label='^', h=10, w=10, c='rsIncTxtFld()' )
rsBut2 = cmds.button( label='v', h=10, w=10, c='rsDecTxtFld()' )
cmds.formLayout( rsForm, edit=True,attachForm=[(rsText, 'top', 8), (rsText, 'left', 5),(rsTxtFld, 'top', 5),(rsTxtFld, 'left', 55),(rsClmLyt, 'top', 4),(rsClmLyt, 'left', 90)])
cmds.showWindow( rsWin )

def rsIncTxtFld():
    rsGetTxtFld=cmds.intField(rsTxtFld, q=1, v=1)
    cmds.intField(rsTxtFld, e=1, v= (rsGetTxtFld+1))
    
def rsDecTxtFld():
    rsGetTxtFld=cmds.intField(rsTxtFld, q=1, v=1)
    cmds.intField(rsTxtFld, e=1, v= (rsGetTxtFld-1))

 

 

 

Hope this will help.

 

Best Regards,

Rajasekaran

0 Likes