控件功能分类:
1.输出型(即展示信息):QLabel(显示文字)、QDialog(承载弹窗内容)
2.输入型(即交互操作):QPushButton(点击触发事件)、QLineEdit(接收用户输入)
QLabel(text):创建显示文本的标签
QDialog():创建一个弹窗窗口
setWindowTitle(title):设置窗口标题栏文字
show():显示控件 / 窗口
# maya点击事件(类写法)
class MyTool(QWidget):
def __init__(self):
super(MyTool, self).__init__()
# 1. 设置窗口属性
self.setWindowTitle("Maya 点击按钮测试")
# 2. 创建布局(让按钮规整一点)
layout = QVBoxLayout()
# 3. 创建按钮(作为类的属性 self.btn,这样它就不会被回收!)
self.btn = QPushButton("点你")
# 4. 连接信号
self.btn.clicked.connect(self.on_click)
# 5. 把按钮放入布局
layout.addWidget(self.btn)
# 6. 应用布局
self.setLayout(layout)
# 定义点击后要执行的函数
def on_click(self):
cmds.confirmDialog(title="666", message="成功!")
设置窗口:setWindowTitle 定义工具名称
布局管理:QVBoxLayout 管理控件位置,addWidget 将控件加入布局
按钮与信号槽:
self.btn = QPushButton("点你"):创建按钮,必须用 self 修饰,否则 Python 垃圾回收会销毁按钮导致 UI 消失。
clicked.connect(self.on_click):信号与槽机制,点击按钮时触发自定义的 on_click 函数。
业务逻辑:on_click 函数中调用 cmds.confirmDialog,弹出 Maya 原生确认对话框,实现点击反馈。
# 输入框
input_box = QLineEdit()
input_box.setPlaceholderText("请输入整数,禁止输入小数...")
input_box.show()
input_box1 = QLineEdit()
input_box1.setPlaceholderText("请输入整数,禁止输入小数...")
input_box1.show()
QLineEdit:单行文本输入框,用于接收用户输入信息
setPlaceholderText(text):设置输入框内的灰色提示文字,引导用户输入
结合之前的组件转换脚本,可以将此处输入的索引值直接传给 polyListComponentConversion,实现动态参数输入。
这个文本可以:
1.模块化思维:将 UI 构建、逻辑处理封装成类,代码可读性和可维护性大幅提升。
2.跨框架结合:通过 cmds 打通 Qt 界面与 Maya 场景,是制作 Maya 高效插件的标准路径。