Python Window template
2024年3月2日
记录一些窗口创建的模版
还是看小静大佬的笔记快一些
base window set
from maya import cmds
def showWindow():
name = "tools"
if cmds.window(name,query=True, exists=True):
cmds.deleteUI(name)
cmds.window(name)
cmds.showWindow()
icon window
window = cmds.window( title = 'shelfButton Example')
tabs = cmds.tabLayout()
shelf = cmds.shelfLayout()
cmds.shelfButton( annotation='Print "Hello".', image1='commandButton.png', command='print "Hello\\n"' )
cmds.shelfButton( annotation='Create a sphere.', image1='sphere.png', command='cmds.sphere()' )
#自定义python
cmds.shelfButton(annotation='Show the Attribute Editor.', image1='AriUVGridding.png', command='import maya.mel; maya.mel.eval("AriUVGridding")' )
#自定义mal语言工具 与 图片图片在文档内有对应命名即可
cmds.shelfButton(annotation='Create a cone.', image1='cone.png', command='cmds.cone()', imageOverlayLabel='4th')
cmds.shelfButton(annotation="Undo last operation.",
image1="undo.png", command="undo", imageOverlayLabel="undo",
overlayLabelColor=(1, .25, .25))
cmds.shelfButton(annotation="Redo last operation.",
image1="redo.png", command="redo", imageOverlayLabel="redo",
overlayLabelColor=(1, 1, .25), overlayLabelBackColor=(.15, .9, .1, .4))
cmds.tabLayout( tabs, edit=True, tabLabel=(shelf, 'Example Shelf') )
cmds.showWindow( window )
自定义工具架(shelf),其中包含了几个按钮。每个按钮都有注释、图像和命令,点击按钮时会执行相应的操作。
以下是对代码中使用到的函数和参数的简要说明:
cmds.window()
:创建一个窗口,并返回该窗口对象。- 参数
title
:指定窗口标题。
- 参数
cmds.tabLayout()
:在当前窗口中创建选项卡布局,并返回该布局对象。cmds.shelfLayout()
:在选项卡布局内部创建工具架布局,并返回该布局对象。cmds.shelfButton()
:在工具架上添加一个按钮。- 参数
annotation
:设置鼠标悬停于按钮上时显示的注释文本。 - 参数
image1
/imageOverlayLabel
: 按钮显示图像及覆盖标签(可选)。 - 参数'command': 指定按下此按钮时执行哪些命令或操作。可以是Python语句或MEL脚本字符串。
- 参数
具体示例:
cmds.shelfButton(annotation='Print "Hello".', image1='commandButton.png', command='print "Hello\\n"' )
最后,通过调用一系列函数来设置选项卡与工具架之间关联关系并将其展示出来:
# 设置选项卡与工具架之间关联
cmds.tabLayout(tabs, edit=True, tabLabel=(shelf, 'Example Shelf'))
# 显示窗口
cmds.showWindow(window)
list window
#定义一个变量
windowtool='MRT'
#判断重复
if cmds.window(windowtool,exists = True):
cmds.deleteUI(windowtool)
#创建窗口
window = cmds.window( title="MetaHumanTools", iconName='Short Name', widthHeight=(200, 220) )
cmds.columnLayout( adjustableColumn=True )
cmds.button( label='tool_1', command=('import combined_MH') )
cmds.button( label='tool_2', command=('import NitroPoly;reload(NitroPoly);NitroPoly.main()') )
cmds.button( label='tool_3', command=('import NitroPoly;reload(NitroPoly);NitroPoly.main()') )
cmds.button( label='tool_4', command=('import NitroPoly;reload(NitroPoly);NitroPoly.main()') )
cmds.button( label='tool_5', command=('import NitroPoly;reload(NitroPoly);NitroPoly.main()') )
cmds.button( label='tool_6', command=('import NitroPoly;reload(NitroPoly);NitroPoly.main()') )
cmds.button( label='tool_7', command=('import NitroPoly;reload(NitroPoly);NitroPoly.main()') )
cmds.button( label='Close', command=('cmds.deleteUI(\"' + window + '\", window=True)') )
cmds.setParent( '..' )
cmds.showWindow( window )