ジャンプ先: 概要. 戻り値. フラグ. Python 例.
shelfButton(
[string]
, [align=string], [annotation=string], [backgroundColor=[float, float, float]], [command=script], [commandRepeatable=boolean], [defineTemplate=string], [disabledImage=string], [docTag=string], [doubleClickCommand=script], [dragCallback=script], [dropCallback=script], [enable=boolean], [enableBackground=boolean], [exists=boolean], [flat=boolean], [font=string], [fullPathName=string], [handleNodeDropCallback=script], [height=int], [highlightImage=string], [image=string], [image1=string], [image2=string], [image3=string], [imageOverlayLabel=string], [isObscured=boolean], [label=string], [labelEditingCallback=script], [labelOffset=int], [manage=boolean], [marginHeight=uint], [marginWidth=uint], [noBackground=boolean], [numberOfPopupMenus=boolean], [overlayLabelBackColor=[float, float, float, float]], [overlayLabelColor=[float, float, float]], [parent=string], [popupMenuArray=boolean], [preventOverride=boolean], [selectionImage=string], [sourceType=string], [style=string], [useTemplate=string], [version=string], [visible=boolean], [visibleChangeCommand=script], [width=int])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
shelfButton は、取り消し可能、照会可能、および編集可能です。
このコントロールは、アイコン イメージを最大 3 つまで、ディスプレイ スタイルを最大 4 つまでサポートします。現在のスタイルが指定されている場合、表示されるアイコン イメージは、コントロールの現在のサイズに最適なイメージです。
このコマンドは、シェルフに配置されるように設計された iconTextButton を作成します。ボタンには、ドラッグ&ドロップが可能なコマンドが含まれています。
照会モードでは、戻り値のタイプは照会されたフラグに基づきます。
align, annotation, backgroundColor, command, commandRepeatable, defineTemplate, disabledImage, docTag, doubleClickCommand, dragCallback, dropCallback, enable, enableBackground, exists, flat, font, fullPathName, handleNodeDropCallback, height, highlightImage, image, image1, image2, image3, imageOverlayLabel, isObscured, label, labelEditingCallback, labelOffset, manage, marginHeight, marginWidth, noBackground, numberOfPopupMenus, overlayLabelBackColor, overlayLabelColor, parent, popupMenuArray, preventOverride, selectionImage, sourceType, style, useTemplate, version, visible, visibleChangeCommand, width
ロング ネーム(ショート ネーム) |
引数タイプ |
プロパティ |
exists(ex)
|
boolean
|
|
|
指定したオブジェクトが存在するかどうかによって、true または false を返します。他のフラグは無視されます。
|
|
defineTemplate(dt)
|
string
|
|
|
他の任意のフラグと引数を解析し、かつ引数で指定したコマンド テンプレートに追加するモードに、コマンドのモードを変更します。templateName が現在のテンプレートとして設定されていれば、その後コマンドが実行されるたびに、この引数が既定の引数として使用されます。
|
|
useTemplate(ut)
|
string
|
|
|
コマンドに、現在以外のコマンド テンプレートの使用を強制します。
|
|
parent(p)
|
string
|
|
|
enable(en)
|
boolean
|
|
|
コントロールの有効、無効です。既定では true に設定されていて、コントロールは有効になっています。false を指定するとコントロールはグレー表示になって無効になります。
|
|
width(w)
|
int
|
|
|
コントロールの幅を指定します。コントロールは親のレイアウトの条件によって無効にされない限り、このサイズを保持しようとします。
|
|
height(h)
|
int
|
|
|
コントロールの高さです。コントロールは親のレイアウトの条件によって無効にされない限り、このサイズを保持しようとします。
|
|
visible(vis)
|
boolean
|
|
|
コントロールの可視の状態です。既定では、コントロールは表示されます。コントロールの実際の外見も、その親レイアウトの可視の状態によって異なることに注意してください。
|
|
visibleChangeCommand(vcc)
|
script
|
|
|
コントロールの可視の状態が変更されたときに実行されるコマンドです。
|
|
isObscured(io)
|
boolean
|
|
|
コントロールが実際に表示されるかどうかを返します。コントロールは、次の場合に隠れた状態になります。非表示の場合、別のコントロールで(完全に、または部分的に)ブロックされた場合、コントロールまたは親のレイアウトを制御できない場合、あるいはコントロールのウィンドウが非表示またはアイコン化されている場合。
|
|
manage(m)
|
boolean
|
|
|
コントロールの状態を管理します。管理されていないコントロールは表示されず、画面の領域も占有しません。既定では、コントロールは管理できるように作成されます。
|
|
numberOfPopupMenus(npm)
|
boolean
|
|
|
このコントロールにアタッチされるポップアップ メニューの数を返します。
|
|
popupMenuArray(pma)
|
boolean
|
|
|
このコントロールにアタッチされる全ポップアップ メニューの名前を返します。
|
|
preventOverride(po)
|
boolean
|
|
|
true の場合、コントロールのコントロールは親のレイアウトの条件によって無効にされ右マウス ボタン メニューを使用したコントロール アトリビュートのオーバーライドは無効です。
|
|
annotation(ann)
|
string
|
|
|
backgroundColor(bgc)
|
[float, float, float]
|
|
|
コントロールのバックグラウンド カラーです。引数は、赤、緑、青のカラー成分に対応しています。それぞれの成分の値は、0.0~1.0 です。 backgroundColor を設定する場合、enableBackground を false に指定していない限り、バックグラウンドは自動的に有効になります。
|
|
noBackground(nbg)
|
boolean
|
|
|
コントロールのバックグラウンドをクリア/リセットします。バックグラウンドは、true を渡すと一切描画されず、false を渡すと描画されます。このフラグの状態は、このコントロールの子に継承されます。
|
|
enableBackground(ebg)
|
boolean
|
|
|
コントロールのバックグラウンド カラーを有効にします。
|
|
docTag(dtg)
|
string
|
|
|
コントロールにドキュメンテーション フラグを追加します。ドキュメンテーション フラグは、階層のようなディレクトリ構造になっています。例: -dt render/multiLister/createNode/material
|
|
dragCallback(dgc)
|
script
|
|
|
中マウス ボタンを押すとコールされるコールバックを追加します。MEL バージョンのコールバックの書式は次のとおりです。
global proc string[] callbackName(string $dragControl, int $x, int $y, int $mods)
proc はドロップ先に転送される文字配列を返します。規則により、配列の先頭文字列はユーザ設定可能なメッセージ タイプを表しています。アプリケーションで定義されたドラッグ元のコントロールは、このコールバックを無視する可能性があります。$mods で、キー モディファイアである CTL と SHIFT をテストできます。有効な値は、0 == モディファイアなし、1 == SHIFT、2 == CTL、3 == CTL + SHIFT です。
Python でも同様ですが、コールバックの指定方法が 2 つあります。お勧めの方法は、引数として Python 関数オブジェクトを渡すことです。この場合、Python コールバックの書式は次のようになります。
def callbackName( dragControl, x, y, modifiers ):
この引数の値は、上記の MEL バージョンの引数と同じです。
Python でコールバックを指定するもう 1 つの方法では、実行する文字列を指定します。この場合、Python の標準的なフォーマット演算子を介して文字列に値が代入されます。このフォーマットの値は、キー「dragControl」、「x」、「y」、「modifiers」と共に辞書で渡されます。dragControl の値は文字列で、その他の値は整数です(コールバック文字列の例: 「print '%(dragControl)s %(x)d %(y)d %(modifiers)d'」)。
|
|
dropCallback(dpc)
|
script
|
|
|
ドラッグ&ドロップ操作をドロップ位置で解放したときにコールされるコールバックを追加します。MEL バージョンのコールバックの書式は次のとおりです。
global proc callbackName(string $dragControl, string $dropControl, string $msgs[], int $x, int $y, int $type)
proc は、ドラッグ元から転送される文字配列を受け取ります。msgs 配列の先頭文字列はユーザ定義のメッセージ タイプを表します。アプリケーションで定義されたドロップ先のコントロールでは、このコールバックが無視されることがあります。$type の値は、1 == 移動、2 == コピー、3 == リンクのいずれかです。
Python でも同様ですが、コールバックの指定方法が 2 つあります。お勧めの方法は、引数として Python 関数オブジェクトを渡すことです。この場合、Python コールバックの書式は次のようになります。
def pythonDropTest( dragControl, dropControl, messages, x, y, dragType ):
この引数の値は、上記の MEL バージョンの引数と同じです。
Python でコールバックを指定するもう 1 つの方法では、実行する文字列を指定します。この場合、Python の標準的なフォーマット演算子を介して文字列に値が代入されます。このフォーマットの値は、キー「dragControl」、「dropControl」、「messages」、「x」、「y」、「type」と共に辞書で渡されます。dragControl の値は文字列で、その他の値は整数です(コールバック文字列の例: 「print '%(dragControl)s %(dropControl)s %(messages)r %(x)d %(y)d %(type)d'」)。
|
|
fullPathName(fpn)
|
string
|
|
|
すべての親を含むウィジェットのフル パス名を返します。
|
|
image1(i1)
|
string
|
|
|
image2(i2)
|
string
|
|
|
image3(i3)
|
string
|
|
|
このコントロールは、3 つのアイコンをサポートしています。コントロールの現在のサイズに最適なアイコンが表示されます。
|
|
image(i)
|
string
|
|
|
サイズの異なるイメージがなければ、このフラグをコントロールのイメージに使用できます。「iconOnly」スタイルを設定すると、アイコンはコントロールのサイズに合わせてスケーリングされます。
|
|
disabledImage(di)
|
string
|
|
|
ボタンが無効になっているときに使用されるイメージです。イメージのサイズは、-i/image フラグで指定したイメージのサイズと同じである必要があります。これは Windows 専用のフラグです。
|
|
imageOverlayLabel(iol)
|
string
|
|
|
イメージ上に表示されるラベルを表す、最大 5 文字の短い文字列です。
|
|
overlayLabelColor(olc)
|
[float, float, float]
|
|
|
imageOverlayLabel が定義するラベルの RGB カラーです。既定は薄いグレーです: .8 .8 .8
|
|
overlayLabelBackColor(olb)
|
[float, float, float, float]
|
|
|
imageOverlayLabel が定義するラベルの影の RGBA カラーです。既定は透過率 25% の黒です: 0 0 0 .25
|
|
label(l)
|
string
|
|
|
style(st)
|
string
|
|
|
コントロールの描画スタイルです。有効なスタイルは、「iconOnly」、「textOnly」、「iconAndTextHorizontal」、「iconAndTextVertical」と「iconAndTextCentered」です(注: 「iconAndTextCentered」は Windows のみで使用可能です)。「iconOnly」スタイルを設定すると、アイコンはコントロールのサイズに合わせてスケーリングされます。
|
|
align(al)
|
string
|
|
|
ラベル位置合わせです。位置合わせの値は、「left」、「right」、「center」です。既定では、ラベルは「center」に位置合わせされます。現在は、-st/style が「iconAndTextCentered」に設定されている場合にのみ使用可能です。
|
|
labelOffset(lo)
|
int
|
|
|
ラベル オフセットです。既定は 0 です。現在は、-st/style が「iconAndTextCentered」に設定されている場合にのみ使用可能です。
|
|
marginWidth(mw)
|
uint
|
|
|
コントロール コンテンツの両側にあるピクセル数。既定値は 1 ピクセルです。
|
|
marginHeight(mh)
|
uint
|
|
|
コントロール コンテンツの上下にあるピクセル数。既定値は 1 ピクセルです。
|
|
font(fn)
|
string
|
|
|
テキストのフォントです。有効な値は、「boldLabelFont」、「smallBoldLabelFont」、「tinyBoldLabelFont」、「plainLabelFont」、「smallPlainLabelFont」、「obliqueLabelFont」、「smallObliqueLabelFont」、「fixedWidthFont」、「smallFixedWidthFont」です。
|
|
version(ver)
|
string
|
|
|
このコントロール機能が導入されたバージョンを指定します。引数は、バージョン番号の文字列として指定する必要があります(例: 「2013」、「2014」)。現時点では、メジャー バージョン番号のみが受け入れられます(例: 2013.5 は「2013」と指定する必要があります)。
|
|
command(c)
|
script
|
|
|
コントロールを押したときに実行されるコマンドです。
|
|
doubleClickCommand(dcc)
|
script
|
|
|
コントロールをダブル クリックしたときに実行されるコマンドです。
|
|
sourceType(stp)
|
string
|
|
|
コマンド スクリプトの言語タイプを設定します。c/command や dcc/doubleClickCommand フラグと一緒にのみ使用できます。有効な値は「mel」(既定で有効)と「python」です。
|
|
selectionImage(si)
|
string
|
|
|
コントロールを選択したときに表示されるイメージ。イメージのサイズは、-i/image フラグで指定したイメージのサイズと同じである必要があります。これは Windows 専用のフラグです。
|
|
highlightImage(hi)
|
string
|
|
|
カーソルがコントロールの上にあるときに、ハイライトされるイメージ。イメージのサイズは、-i/image フラグで指定したイメージのサイズと同じである必要があります。これは Windows 専用のフラグです。
|
|
handleNodeDropCallback(hnd)
|
script
|
|
|
ノードがコントロールにドロップされるとコールされるスクリプト コールバックを指定します。ドロップ中のノード名は関数(Python によりコール可能)に渡されるか、末尾(スクリプト)にアペンドされて実行されるコマンドを形成します。
|
|
labelEditingCallback(lec)
|
script
|
|
|
コントロールのラベルをダブル クリックして新しいラベルを適用した後コールするコールバックを指定します。新規ラベル文字列がコールバックに渡されます。
|
|
commandRepeatable(rpt)
|
boolean
|
|
|
コマンド フラグで指定した MEL コマンドを繰り返し可能にするかどうかを設定します。既定では、最後に実行したコマンドを繰り返すためのショートカットは「g」キーです。
|
|
flat(fla)
|
boolean
|
|
|
コントロールをフラットなボタンにするかどうかを設定します(0: false、1: true)。
|
|
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
# Create a window with a shelf in it. You can add more items to
# this shelf by creating more 'shelfButton' objects or by dragging
# other shelf items to the window. Similary, you can delete the
# shelf items with the 'deleteUI' command or by dragging the items
# to the trash can located on the main Maya window shelf.
#
window = cmds.window( title = 'shelfButton Example')
tabs = cmds.tabLayout()
shelf = cmds.shelfLayout()
# Create some shelf buttons...
#
# 1. A button that prints a message to the Command Line.
#
cmds.shelfButton( annotation='Print "Hello".', image1='commandButton.png', command='print "Hello\\n"' )
# 2. A button that will create a sphere.
#
cmds.shelfButton( annotation='Create a sphere.', image1='sphere.png', command='cmds.sphere()' )
# 3. A button that will open the Attribute Editor window.
#
cmds.shelfButton(annotation='Show the Attribute Editor.', image1='menuIconWindow.png', command='import maya.mel; maya.mel.eval("openAEWindow")' )
# 4. A button with a label that will create a cone
#
cmds.shelfButton(annotation='Create a cone.', image1='cone.png', command='cmds.cone()', imageOverlayLabel='4th')
# 5. A button with a label and color that will call undo
#
cmds.shelfButton(annotation="Undo last operation.",
image1="undo.png", command="undo", imageOverlayLabel="undo",
overlayLabelColor=(1, .25, .25))
# 6. A button with a label, color and background that will call redo
#
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 )