返回列表
mayaAPI

Combox下拉框

class ComboxTool(MayaQWidgetBaseMixin, QDialog):
def __init__(self, parent=None): # __init__ 初始化类属性参数固定写法
super().__init__(parent)
self.setWindowTitle("下拉框演示")
self.setFixedSize(250, 70)

下拉组合框工具是

init 初始化类属性参数固定写法

自定义一个初始化,初始化的是这个类里面的

子类继承父类后初始化这个类属性

self这个类定义了一个下拉框演示

# 深色简易样式
self.setStyleSheet("""
QDialog{
background-color:#3f3f3f;
}
QLabel{
color:white;
font-size:13px;
}
QComboBox{
background:#333333;
color:#ffffff;
}
""")

便笺的样式,白色,大小为13

下拉框的样式

# 信号发射器---下拉框
self.combox = QComboBox()
# 几何体选项
self.combox.addItems(
["请选择立方体", "球体", "圆柱", "平面"]
)
main_layout.addWidget(tip)
main_layout.addWidget(self.combox)

# 桥
self.combox.currentTextChanged.connect(self.create_geo)

 定义了一个下拉框,命名为combox

items 项目,条目的意思

把便笺放到主虚拟盒子里面

current当前。当前的组件变化

# 槽
def create_geo(self, geo_name):
# 先清空历史选择、避免干扰
cmds.select(clear=True)

if geo_name == "立方体":
cmds.polyCube()
elif geo_name == "球体":
cmds.polySphere()
elif geo_name == "圆柱":
cmds.polyCylinder()
elif geo_name == "平面":
cmds.polyPlane()

 清除鼠标高亮选择,创建cmds

# 窗口复用
global win
try:
win.close()
except:
pass

win = ComboxTool()
win.show()

让它保持每次只有一个窗口出现

 

drop-down 下拉菜单

drop-arrow 向下箭头

main_layout.setContentsMargins(25,20,25,20)

左上右下,顺序是固定的。可以作用在任意虚拟盒子上

def create_geo(self):
"""按钮点击触发"""
cur_type = self.combo.currentText()

if cur_type == "立方体":
cmds.polyCube()
elif cur_type == "球体":
cmds.polySphere()
elif cur_type == "圆柱":
cmds.polyCylinder()
elif cur_type == "平面":
cmds.polyPlane()
elif cur_type == "圆环":
cmds.polyTorus()

这个槽实际上是一个类函数

当点击按钮的时候,触发了click这个槽这个槽又调用了currentText这个桥

监测字符串的变化