-
Notifications
You must be signed in to change notification settings - Fork 1
/
reusableUI.py
82 lines (55 loc) · 2.13 KB
/
reusableUI.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
from maya import cmds
from tweenerUI import tween
from gearClassCreator import Gear
class BaseWindow(object):
windowName = "BaseWindow"
def show(self):
if cmds.window(self.windowName, query=True, exists=True):
cmds.deleteUI(self.windowName)
cmds.window(self.windowName)
self.buildUI()
cmds.showWindow()
def buildUI(self):
pass
def reset(self, *args):
pass
def close(self, *args):
cmds.deleteUI(self.windowName)
class TweenerUI(BaseWindow):
windowName = "tweenerWindow"
def buildUI(self):
column = cmds.columnLayout()
cmds.text(label="use this slider to set the tween amount")
row = cmds.rowLayout(numberOfColumns=2)
self.slider = cmds.floatSlider(min=0, max =100, value=50, step=1, changeCommand=tween)
cmds.button(label="reset", command=self.reset)
cmds.setParent(column)
cmds.button(label="Close",command=self.close)
def reset(self, *args):
cmds.floatSlider(self.slider, edit=True, value=50)
class GearUI(BaseWindow):
windowName = "gearWindow"
def __init__(self):
self.gear = None
def buildUI(self):
column = cmds.columnLayout()
cmds.text(label = "use the slider to modify the gear")
cmds.rowLayout(numberOfColumns=4)
self.label = cmds.text(label=10)
self.slider = cmds.intSlider(min=5, max=30, value=10, step=1, dragCommand= self.modifyGear)
cmds.button(label="Make gear", command=self.makeGear)
cmds.button(label="reset", command=self.reset)
cmds.setParent(column)
cmds.button(label="close", command=self.close)
def makeGear(self,*args):
teeth =cmds.intSlider(self.slider, query=True, value=True)
self.gear = Gear()
self.gear.createGear(teeth=teeth)
def modifyGear(self,teeth):
if self.gear:
self.gear.changeTeeth(teeth=teeth)
cmds.text(self.label, edit=True, label=teeth)
def reset(self, *args):
self.gear=None
cmds.intSlider(self.slider, edit=True, value=10)
cmds.text(self.label, edit=True, label=10)