返回列表
mayaAPI

pySideQT基础控件讲解

控件功能分类:

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 高效插件的标准路径。