python - 如何在 optionMenuGrp -Pyhotn for maya 2018 的项目中添加图标?
问题描述
我想在选项菜单中有文本和图标,我尝试对 optionMenuGrp 命令使用标志(图像),但我似乎无法正确处理,这是我一直在处理的代码:
import maya.cmds as cmds
class ctrl_UI(object):
@classmethod
def display(cls,development=True):
if cmds.window("ctrl_UI_window",exists=True):
cmds.deleteUI("ctrl_UI_window")
if development and cmds.windowPref("ctrl_UI_window", exists=True):
cmds.windowPref("ctrl_UI_window", remove=True)
cls.main_window=cmds.window("ctrl_UI_window",sizeable=False,rtf=True,mnb=False,mxb=False,t="Create Controllers")
main_layout=cmds.formLayout(p=cls.main_window)
# Shap layout
shape_layout=cmds.rowLayout(p=main_layout,nc=1)
cmds.formLayout(main_layout ,e=True ,af=(shape_layout,"top",4))
cmds.formLayout(main_layout ,e=True ,af=(shape_layout,"left",4))
cls.cShape=cmds.optionMenuGrp(l="Controller Shapes")
cmds.menuItem(i="C:\Users\HHCL\Documents\maya\2018\prefs\icons\Icon1.jpeg")
cmds.menuItem(l="Cube",i="G:\Elham\scripts\Key tools\Icon2.jpeg")
cmds.menuItem(l="Sphere",i="G:\Elham\scripts\Key tools\Icon1.jpeg")
cmds.menuItem(l="Triangle",i="G:\Elham\scripts\Key tools\Icon2.jpeg")
cmds.menuItem(l="Square",i="G:\Elham\scripts\Key tools\Icon1.jpeg")
cmds.menuItem(l="Ring",i="G:\Elham\scripts\Key tools\Icon2.jpeg")
cmds.menuItem(l="Half Circle",i="G:\Elham\scripts\Key tools\Icon1.jpeg")
cmds.menuItem(l="Two Pin",i="G:\Elham\scripts\Key tools\Icon2.jpeg")
cmds.menuItem(l="Quad Pin",i="G:\Elham\scripts\Key tools\Icon1.jpeg")
cmds.menuItem(l="Locatore",i="G:\Elham\scripts\Key tools\Icon2.jpeg")
cmds.menuItem(l="Single Arrow",i="G:\Elham\scripts\Key tools\Icon1.jpeg")
cmds.menuItem(l="Double Arrow",i="G:\Elham\scripts\Key tools\Icon2.jpeg")
cmds.menuItem(l="Four Arrow",i="G:\Elham\scripts\Key tools\Icon1.jpeg")
cmds.menuItem(l="Pointer Arrow",i="G:\Elham\scripts\Key tools\Icon2.jpeg")
cmds.menuItem(l="Arrow Head",i="G:\Elham\scripts\Key tools\Icon1.jpeg")
cmds.menuItem(l="Plus",i="G:\Elham\scripts\Key tools\Icon2.jpeg")
cmds.showWindow("ctrl_UI_window")
if __name__ =="__main__":
c=ctrl_UI()
c.display()
我觉得我错过了一些东西,但我不能把它交给它任何帮助将不胜感激。提前致谢
解决方案
图标可以与 menuItems 上的图像标志一起显示。图像标志需要图标路径的字符串。Maya optionMenuGrp 控件似乎抑制了图像标志和其他(例如 -cc 等)
您的代码中的另一个错误是您使用single backwards slashes
“\”。将其更改为forward slashes
“/”或使用double backslashes
“\\”作为路径分隔符。
\t
- 例如,将是一个制表键
\n
- 将是一个换行符
由于这个问题,无法找到路径,但 Maya 只是忽略了错误的图像路径,而不是错误。
如果您也想在其他计算机上使用此脚本,也建议不要使用绝对路径,而是将图标放入您的脚本包中,并根据包在磁盘上的位置生成完整路径。
编辑:在尝试修复反斜杠之后,当 menuItem 控件添加到 optionMenuGrp 时,Maya 会忽略图像。图像仍然可以在 optionMenu 中工作(例如,对于 Windows 中的主菜单控件) 建议切换到 Maya 附带的 PySide/PySide2 形式的 Qt,并改用 QComboBox。
推荐阅读
- javascript - 避免在 Jquery datepicker 中默认今天的日期
- ruby-on-rails - 在哪里将自定义 javascript 代码放在 rails 6 中?
- javascript - 根据数据中的参数值渲染组件
- android - Retrofit + coroutines:使用 Gson 进行自定义错误处理
- android - 使用 MeditorLiveData 和协程对 ViewModel 进行单元测试
- laravel - laravel db 回滚是否仅适用于打开的事务?
- xml - 尝试生成实体时出现 Doctrine Invalid Mapping File 异常
- regex - Ruby 正则表达式允许 A-Za-z0-9
- javascript - 有没有办法用 asin/acos/atan 函数 JavaScript 获得弧度?
- c# - 将 ienumerable 转换为类对象