Maya自定义菜单可被查询到但未在菜单栏显示问题求助
Maya自定义菜单创建后不显示的原因及解决方案
核心原因
- Maya 2018及后续版本默认启用优化菜单栏功能,系统默认仅渲染和当前工作区匹配的官方菜单,自定义菜单默认不会进入优化显示列表,因此你虽然创建成功(可以通过查询代码查到),但不会在菜单栏显示。
- 你使用的
pm.menu创建逻辑没有做重名菜单清理,也未添加适配优化菜单栏的参数,重复创建的隐藏重名菜单会导致新菜单继承隐藏状态。
修复方案
修正后的完整可运行代码
import pymel.core as pm import maya.mel as mel # 获取Maya主窗口 MainMayaWindow = mel.eval("$tmpVar = $gMainWindow") # 先清理已存在的同名菜单,避免重名冲突 custom_menu_id = "CustomMenu" custom_menu_label = "自定义菜单" if pm.menu(custom_menu_id, exists=True): pm.deleteUI(custom_menu_id) # 创建菜单时添加适配优化菜单栏的参数 customMenu = pm.menu( custom_menu_id, label=custom_menu_label, parent=MainMayaWindow, allowOptimizedMenuBar=True, tearOff=True ) # 添加菜单项,改用lambda避免字符串命令的作用域问题 pm.menuItem(label="测试菜单项 'hihi'", command=lambda *x: print("hihi"), parent=customMenu) # 强制刷新菜单可见状态 pm.menu(customMenu, e=True, visible=True)
可选手动操作
如果运行代码后还是看不到菜单,可以点击Maya菜单栏最右侧的+按钮(优化菜单栏自定义入口),在弹出的菜单列表中找到你的自定义菜单,勾选后即可固定显示在菜单栏。
内容的提问来源于stack exchange,提问作者nish
相关产品推荐
相关产品推荐

