ジャンプ先: 概要. 戻り値. フラグ. 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], [enableCommandRepeat=boolean], [enableKeyboardFocus=boolean], [exists=boolean], [flat=boolean], [flexibleWidthType=int], [flexibleWidthValue=int], [flipX=boolean], [flipY=boolean], [font=string], [fullPathName=boolean], [handleNodeDropCallback=script], [height=int], [highlightColor=[float, float, float]], [highlightImage=string], [image=string], [image1=string], [image2=string], [image3=string], [imageOverlayLabel=string], [isObscured=boolean], [label=string], [labelEditingCallback=script], [labelOffset=int], [ltVersion=string], [manage=boolean], [marginHeight=uint], [marginWidth=uint], [menuItem=[string, string]], [menuItemPython=int], [noBackground=boolean], [noDefaultPopup=boolean], [numberOfPopupMenus=boolean], [overlayLabelBackColor=[float, float, float, float]], [overlayLabelColor=[float, float, float]], [parent=string], [popupMenuArray=boolean], [preventOverride=boolean], [rotation=float], [scaleIcon=boolean], [selectionImage=string], [sourceType=string], [statusBarMessage=string], [style=string], [useAlpha=boolean], [useTemplate=string], [version=string], [visible=boolean], [visibleChangeCommand=script], [width=int])

注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。

shelfButton は、取り消し可能、照会可能、および編集可能です。

このコントロールは、アイコン イメージを最大 3 つまで、ディスプレイ スタイルを最大 4 つまでサポートします。現在のスタイルが指定されている場合、表示されるアイコン イメージは、コントロールの現在のサイズに最適なイメージです。

このコマンドは、シェルフに配置されるように設計された iconTextButton を作成します。ボタンには、ドラッグ&ドロップが可能なコマンドが含まれています。

戻り値

stringボタンのフル ネーム。

照会モードでは、戻り値のタイプは照会されたフラグに基づきます。

フラグ

align, annotation, backgroundColor, command, commandRepeatable, defineTemplate, disabledImage, docTag, doubleClickCommand, dragCallback, dropCallback, enable, enableBackground, enableCommandRepeat, enableKeyboardFocus, exists, flat, flexibleWidthType, flexibleWidthValue, flipX, flipY, font, fullPathName, handleNodeDropCallback, height, highlightColor, highlightImage, image, image1, image2, image3, imageOverlayLabel, isObscured, label, labelEditingCallback, labelOffset, ltVersion, manage, marginHeight, marginWidth, menuItem, menuItemPython, noBackground, noDefaultPopup, numberOfPopupMenus, overlayLabelBackColor, overlayLabelColor, parent, popupMenuArray, preventOverride, rotation, scaleIcon, selectionImage, sourceType, statusBarMessage, style, useAlpha, useTemplate, version, visible, visibleChangeCommand, width
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
align(al) string createqueryedit
ラベル位置合わせです。位置合わせの値は、「left」、「right」、「center」です。既定では、ラベルは「center」に位置合わせます。現在は、-st/style が「iconAndTextCentered」に設定されている場合にのみ使用可能です。
annotation(ann) string createqueryedit
コントロールに文字列値で注釈を付けます。
backgroundColor(bgc) [float, float, float] createqueryedit
コントロールのバックグラウンド カラーです。引数は、赤、緑、青のカラー成分に対応しています。それぞれの成分の値は、0.0~1.0 です。
backgroundColor を設定する場合、enableBackground を false に指定していない限り、バックグラウンドは自動的に有効になります。
command(c) script createqueryedit
コントロールを押したときに実行されるコマンドです。
commandRepeatable(rpt) boolean createqueryedit
コマンド フラグで指定した MEL コマンドを繰り返し可能にするかどうかを設定します。既定では、最後に実行したコマンドを繰り返すためのショートカットは「g」キーです。
defineTemplate(dt) string create
他の任意のフラグと引数を解析し、かつ引数で指定したコマンド テンプレートに追加するモードに、コマンドのモードを変更します。 templateName が現在のテンプレートとして設定されていれば、その後コマンドが実行されるたびに、この引数が既定の引数として使用されます。
disabledImage(di) string createqueryedit
ボタンが無効になっているときに使用されるイメージです。イメージのサイズは、-i/image フラグで指定したイメージのサイズと同じである必要があります。これは Windows 専用のフラグです。
docTag(dtg) string createqueryedit
コントロールにドキュメンテーション フラグを追加します。ドキュメンテーション フラグは、ディレクトリ構造になっています。 (例: -dt render/multiLister/createNode/material)
doubleClickCommand(dcc) script createqueryedit
コントロールをダブル クリックしたときに実行されるコマンドです。
dragCallback(dgc) script createedit
中マウス ボタンを押すとコールされるコールバックを追加します。MEL バージョンのコールバックの書式は次のとおりです。

global proc string[] callbackName(string $dragControl, int $x, int $y, int $mods)

proc はドロップ先に転送される文字配列を返します。規則により、配列の先頭文字列はユーザ設定可能なメッセージ タイプを表しています。アプリケーションで定義されたドラッグ元のコントロールは、このコールバックを無視する可能性があります。$mods で、キー モディファイアである CTRL と SHIFT をテストできます。 有効な値は、0 == モディファイアなし、1 == SHIFT、2 == CTRL、3 == CTRL + 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 createedit
ドラッグ&ドロップ操作をドロップ位置で解放したときにコールされるコールバックを追加します。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'」)。

enable(en) boolean createqueryedit
コントロールの有効、無効です。既定では true に設定されていて、コントロールは有効になっています。false を指定するとコントロールはグレー表示になって無効になります。
enableBackground(ebg) boolean createqueryedit
コントロールのバックグラウンド カラーを有効にします。
enableCommandRepeat(ecr) boolean createqueryedit
コマンドをアタッチできるメニュー項目のみに影響します。true を指定すると、コマンド repeatLast が実行されてコマンドが繰り返されます。このフラグは、オプション ボックス項目を除くすべての項目で既定で true になっています。
enableKeyboardFocus(ekf) boolean createqueryedit
有効にすると、[Tab]キーを押してコントロールに移動し、キーボードで値を選択することができます。有効でない場合は、マウスのみを使用できます。このフラグは通常、編集コントロールやリスト コントロールなどで既定で使用されるコントロールから、キーボード フォーカスのサポートをオフにするために使用されます。
exists(ex) boolean create
指定したオブジェクトが存在するかどうかを返します。他のフラグは無視されます。
flat(fla) boolean createqueryedit
コントロールをフラットなボタンにするかどうかを設定します(0: false、1: true)。
flexibleWidthType(fwt) int createqueryedit
このフラグは、シェルフ ボタンの幅を広げる、または狭める場合に使用されます。有効な値: 標準(Standard) = 1、カスタム(Custom) = 2、自動(Automatic) = 3。 標準(Standard)タイプは、サイズを変更できますが、アスペクト比は 32x32 ピクセルを維持します。自動(Automatic)タイプは、幅の広いイメージを適切に使用できるようにボタンの幅を調整できます。カスタム(Custom)タイプの場合は、アイコンの特定の幅をユーザが指定できます。 既定値は 3 です。
flexibleWidthValue(fwv) int createqueryedit
このフラグが役立つのは、flexibleWidthType にカスタム(Custom)が選択されている場合のみです。幅の値はピクセル単位で指定します。
flipX(fx) boolean createqueryedit
イメージを水平方向に反転するかどうかを指定します。
flipY(fy) boolean createqueryedit
イメージを垂直方向に反転するかどうかを指定します。
font(fn) string createqueryedit
テキストのフォントです。有効な値は、「boldLabelFont」、「smallBoldLabelFont」、「tinyBoldLabelFont」、「plainLabelFont」、「smallPlainLabelFont」、「obliqueLabelFont」、「smallObliqueLabelFont」、「fixedWidthFont」、「smallFixedWidthFont」です。
fullPathName(fpn) boolean query
すべての親を含むウィジェットのフル パス名を返します。
handleNodeDropCallback(hnd) script createedit
ノードがコントロールにドロップされるとコールされるスクリプト コールバックを指定します。ドロップ中のノード名は関数(Python によりコール可能)に渡されるか、末尾(スクリプト)にアペンドされて実行されるコマンドを形成します。
height(h) int createqueryedit
コントロールの高さです。コントロールは親のレイアウトの条件によって無効にされない限り、このサイズを保持しようとします。
highlightColor(hlc) [float, float, float] createqueryedit
コントロールのハイライト カラーです。引数は、赤、緑、青のカラー成分に対応しています。それぞれの成分の値は、0.0~1.0 です。
highlightImage(hi) string createqueryedit
カーソルがコントロールの上にあるときに、ハイライトされるイメージ。イメージのサイズは、-i/image フラグで指定したイメージのサイズと同じである必要があります。これは Windows 専用のフラグです。
image(i) string createqueryedit
サイズの異なるイメージがなければ、このフラグをコントロールのイメージに使用できます。「iconOnly」スタイルを設定すると、アイコンはコントロールのサイズに合わせてスケーリングされます。
image1(i1) string createqueryedit
3 つの可能なアイコンの中の 1 番目です。コントロールの現在のサイズに最適なアイコンが表示されます。
image2(i2) string createqueryedit
3 つの可能なアイコンの中の 2 番目です。コントロールの現在のサイズに最適なアイコンが表示されます。
image3(i3) string createqueryedit
3 つの可能なアイコンの中の 3 番目です。コントロールの現在のサイズに最適なアイコンが表示されます。
imageOverlayLabel(iol) string createqueryedit
イメージ上に表示されるラベルを表す、最大 6 文字の短い文字列です。
isObscured(io) boolean query
コントロールが実際に表示されるかどうかを返します。コントロールは、次の場合に隠れた状態になります。非表示の場合、別のコントロールで(完全に、または部分的に)ブロックされた場合、コントロールまたは親のレイアウトを制御できない場合、あるいはコントロールのウィンドウが非表示またはアイコン化されている場合。
label(l) string createqueryedit
コントロールに表示されるテキストです。
labelEditingCallback(lec) script createedit
コントロールのラベルをダブル クリックして新しいラベルを適用した後コールするコールバックを指定します。新規ラベル文字列がコールバックに渡されます。
labelOffset(lo) int createqueryedit
ラベル オフセットです。既定は 0 です。現在は、-st/style が「iconAndTextCentered」に設定されている場合にのみ使用可能です。
ltVersion(lt) string createqueryedit
このフラグは、バージョン フラグが指定されない場合、またはバージョン フラグは指定されているが引数が異なる場合に、このコントロール機能が導入されている Maya LT バージョンを指定するために使用されます。この値は Maya LT のみで使用され、それ以外では無視されます。引数は、バージョン番号の文字列として指定する必要があります(例: 「2013」、「2014」)。現時点では、メジャー バージョン番号のみが受け入れられます(例: 2013 Ext 1 または 2013.5 は「2014」と指定する必要があります)。
manage(m) boolean createqueryedit
コントロールの状態を管理します。管理されていないコントロールは表示されず、画面の領域も占有しません。既定では、コントロールは管理できるように作成されます。
marginHeight(mh) uint createqueryedit
コントロール コンテンツの上下にあるピクセル数。既定値は 1 ピクセルです。
marginWidth(mw) uint createqueryedit
コントロール コンテンツの両側にあるピクセル数。既定値は 1 ピクセルです。
menuItem(mi) [string, string] createeditmultiuse
このボタンのメニュー項目を、各項目に対応するメニュー項目ラベルおよびコマンドの引数に入れて渡すことにより、作成します。コマンドでこのフラグを使用するたびに、これらを文字列「"label" "command"」として渡す必要があります。
menuItemPython(mip) int createeditmultiuse
このフラグは、メニュー項目が Python 内にあることを指定する場合に使用します。整数値は、このフラグによって修正された menuItem のインデックスです。この値の基数は 0 であるため、/-mi/-menuItem フラグの(インデックス + 1)回目の出現に対応します。
noBackground(nbg) boolean createedit
コントロールのバックグラウンドをクリア/リセットします。バックグラウンドは、true を渡すと一切描画されず、false を渡すと描画されます。このフラグの状態は、このコントロールの子に継承されます。
noDefaultPopup(ndp) boolean create
既定のポップ アップ メニューを無効にします。
numberOfPopupMenus(npm) boolean query
このコントロールにアタッチされるポップアップ メニューの数を返します。
overlayLabelBackColor(olb) [float, float, float, float] createqueryedit
imageOverlayLabel が定義するラベルの影の RGBA カラーです。既定は透過率 50% の黒です: 0 0 0 .5
overlayLabelColor(olc) [float, float, float] createqueryedit
imageOverlayLabel が定義するラベルの RGB カラーです。既定は薄いグレーです: .8 .8 .8
parent(p) string createquery
コントロールの親のレイアウトです。
popupMenuArray(pma) boolean query
このコントロールにアタッチされる全ポップアップ メニューの名前を返します。
preventOverride(po) boolean createqueryedit
true の場合、コントロールの右マウス ボタン メニューを使用したコントロール アトリビュートのオーバーライドは無効になります。
rotation(rot) float createqueryedit
イメージの回転値(ラジアン)です。
scaleIcon(sic) boolean createedit
「textOnly」 と 「iconOnly」 スタイルの場合は、このフラグは無視されます。他のスタイルの場合、フラグが指定されていれば、アイコンはコントロールのサイズに合わせてスケーリングされます。
selectionImage(si) string createqueryedit
コントロールを選択したときに表示されるイメージ。イメージのサイズは、-i/image フラグで指定したイメージのサイズと同じである必要があります。これは Windows 専用のフラグです。
sourceType(stp) string createqueryedit
コマンド スクリプトの言語タイプを設定します。c/command や dcc/doubleClickCommand フラグと一緒にのみ使用できます。有効な値は「mel」(既定で有効)と「python」です。
statusBarMessage(sbm) string createedit
マウスがコントロール上にある場合にステータス バーに表示する追加の文字列です。
style(st) string createqueryedit
コントロールの描画スタイルです。有効なスタイルは、「iconOnly」、「textOnly」、「iconAndTextHorizontal」、「iconAndTextVertical」と「iconAndTextCentered」です(注: 「iconAndTextCentered」は Windows のみで使用可能です)。「iconOnly」スタイルを設定すると、アイコンはコントロールのサイズに合わせてスケーリングされます。
useAlpha(ua) boolean createqueryedit
イメージにアルファ チャネルを使用するかどうかを指定します。
useTemplate(ut) string create
コマンドに、現在のものとは異なるコマンド テンプレートを使用するように強制します。
version(ver) string createqueryedit
このコントロール機能が導入されたバージョンを指定します。引数は、バージョン番号の文字列として指定する必要があります(例: 「2013」、「2014」)。現時点では、メジャー バージョン番号のみが受け入れられます(例: 2013 Ext 1 または 2013.5 は「2014」と指定する必要があります)。
visible(vis) boolean createqueryedit
コントロールの可視の状態です。既定では、コントロールは表示されます。コントロールの実際の外見も、その親レイアウトの可視の状態によって異なることに注意してください。
visibleChangeCommand(vcc) script createqueryedit
コントロールの可視の状態が変更されたときに実行されるコマンドです。
width(w) int createqueryedit
コントロールの幅を指定します。コントロールは親のレイアウトの条件によって無効にされない限り、このサイズを保持しようとします。

フラグはコマンドの作成モードで表示できます フラグはコマンドの編集モードで表示できます
フラグはコマンドの照会モードで表示できます フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。

Python 例

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.  Similarly, 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 )