ジャンプ先: 概要. 戻り値. フラグ. Python 例.
toolButton(
[string]
, [allowMultipleTools=boolean], [annotation=string], [backgroundColor=[float, float, float]], [changeCommand=script], [collection=string], [defineTemplate=string], [docTag=string], [doubleClickCommand=script], [dragCallback=script], [dropCallback=script], [enable=boolean], [enableBackground=boolean], [exists=boolean], [fullPathName=string], [height=int], [image1=string], [image2=string], [image3=string], [imageOverlayLabel=string], [isObscured=boolean], [manage=boolean], [noBackground=boolean], [numberOfPopupMenus=boolean], [offCommand=script], [onCommand=script], [parent=string], [popupIndicatorVisible=boolean], [popupMenuArray=boolean], [preventOverride=boolean], [select=boolean], [style=string], [tool=string], [toolArray=boolean], [toolCount=boolean], [toolImage1=[string, string]], [toolImage2=[string, string]], [toolImage3=[string, string]], [useTemplate=string], [version=string], [visible=boolean], [visibleChangeCommand=script], [width=int])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
toolButton は、取り消し可能、照会可能、および編集可能です。
cl/collection が使用されていない場合、toolButton を作成し、最後に作成されたツール ボタン コレクションに追加します。さらに、指定したツールを配置し、コントロールが選択した時点で有効にします。
既定では、このコントロールは一度に 1 つのツールのみを扱います。t/tool フラグを使用して新しいツールを接続すると、以前にアタッチしたツールが単純にオーバーライドされます。amt/allowMultipleTools フラグを使用すると、このコントロールを使用して複数のツールをアタッチできます。ただし、コントロール内で現在のツールになるのは、1 つのツールのみです。他のツールにアクセスするには、右マウス ボタンを押して、このコントロールに関連づけられたツールをすべて含むポップアップ メニューを表示します。piv/popupIndicatorVisible フラグを設定すると、追加のツールがこのコントロールにアタッチされていることを示すため、コントロール上に小さな矢印が描かれます。
string | 作成された toolButton の名前 |
照会モードでは、戻り値のタイプは照会されたフラグに基づきます。
allowMultipleTools, annotation, backgroundColor, changeCommand, collection, defineTemplate, docTag, doubleClickCommand, dragCallback, dropCallback, enable, enableBackground, exists, fullPathName, height, image1, image2, image3, imageOverlayLabel, isObscured, manage, noBackground, numberOfPopupMenus, offCommand, onCommand, parent, popupIndicatorVisible, popupMenuArray, preventOverride, select, style, tool, toolArray, toolCount, toolImage1, toolImage2, toolImage3, 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 つの画像をサポートします。現在のコントロールのサイズにもっとも合う画像が表示されます。このフラグは、この画像を現在のツールに適用します。
|
|
imageOverlayLabel(iol)
|
string
|
|
|
アイコンの上に表示される短い文字列(5 文字)のラベルです。
|
|
toolImage1(ti1)
|
[string, string]
|
|
|
toolImage2(ti2)
|
[string, string]
|
|
|
toolImage3(ti3)
|
[string, string]
|
|
|
このコントロールは 3 つの画像をサポートします。現在のコントロールのサイズにもっとも合う画像が表示されます。このフラグは、この画像を指定したツールに適用します。最初の引数はツールの名前、2 番目は画像の名前です。照会すると、1 組のツール アイコンの配列が返されます。
|
|
style(st)
|
string
|
|
|
コントロールの描画スタイルです。有効な値は、「iconOnly」、「textOnly」、「iconAndTextHorizontal」、「iconAndTextVertical」です。
|
|
onCommand(onc)
|
script
|
|
|
コントロールをオンにしたときに実行されるコマンドです。
|
|
offCommand(ofc)
|
script
|
|
|
コントロールをオフにしたときに実行されるコマンドです。
|
|
changeCommand(cc)
|
script
|
|
|
コントロールの状態を変更したときに実行されるコマンドです。このフラグは、onCommand と offCommand と一緒に使用しないでください。changeCommand を使用してコールバックの内側でコントロールの状態をテストするか、onCommand と offCommand を独立したコールバックとして使用してください。
|
|
collection(cl)
|
string
|
|
|
ツール ボタンをツール コレクションに明示的に追加します。
|
|
doubleClickCommand(dcc)
|
script
|
|
|
コントロールをダブル クリックしたときに実行されるコマンドです。
|
|
select(sl)
|
boolean
|
|
|
このボタンを選択します。また、このフラグはコントロールの選択状態を照会します。
|
|
tool(t)
|
string
|
|
|
ツールの名前をボタンにアタッチします。すでにこのボタンに指定したツールがアタッチされている場合は、そのツールが選択されます。このフラグへの照会は現在のツールを返します。このフラグは、2 つ以上のツールをアタッチするために 2 回以上指定されることがあります。
|
|
allowMultipleTools(amt)
|
boolean
|
|
|
このコントロールで 2 つ以上のツールをアタッチできるかどうかを示します。既定では、このコントロールには 1 つのツールしかアタッチできません。このフラグを true にすると、複数のツールを追加することが可能になります。ただし、現在のツールになり表示されるのは、一度に 1 つのツールだけです。全ツールを見るには、右マウス ボタンにをクリックして表示されるポップ アップ メニューを使用します。
|
|
toolCount(tc)
|
boolean
|
|
|
照会すると、toolButton コントロールにアタッチされたツールの数が返されます。
|
|
toolArray(ta)
|
boolean
|
|
|
照会すると、toolButton コントロールにアタッチされた全ツールの名前が返されます。
|
|
popupIndicatorVisible(piv)
|
boolean
|
|
|
このフラグを編集して、ポップアップ ツール インディケータの可視性を設定することができます。このインディケータはボタン右上に表示されるシンプルな画像で、多くの場合、そのツールはこのコントロールに関連付けられています。このフラグは既定では照会可能で、true になっています。
|
|
version(ver)
|
string
|
|
|
このツール ボタン機能が導入されたバージョンを指定します。引数は、バージョン番号の文字列として指定する必要があります(例: 「2013」、「2014」)。現時点では、メジャー バージョン番号のみが受け入れられます(例: 2013.5 は「2013」と指定する必要があります)。
|
|
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
cmds.window()
cmds.columnLayout()
cmds.toolCollection()
cmds.toolButton( tool='selectSuperContext', toolImage1=('selectSuperContext', 'aselect.xpm') )
cmds.toolButton( tool='moveSuperContext', toolImage1=('moveSuperContext', 'move_M.xpm') )
cmds.toolButton( tool='scaleSuperContext', toolImage1=('scaleSuperContext', 'scale_M.png') )
cmds.showWindow()
# example showing how to create tool buttons for artisan tools
#
# create the contexts
selectCtx = cmds.artSelectCtx()
puttyCtx = cmds.artPuttyCtx()
setPaintCtx = cmds.artSetPaintCtx()
cmds.window()
cmds.gridLayout()
cmds.toolCollection()
# create the tool buttons using the contexts returned
cmds.toolButton(
amt=True, piv=True,
doubleClickCommand='cmds.toolPropertyWindow()',
tool=(selectCtx, puttyCtx, setPaintCtx),
toolImage1=(selectCtx, 'artSelect.xpm'),
toolImage2=(puttyCtx, 'putty.png'),
toolImage3=(setPaintCtx, 'paintSetMembership.png') )
cmds.showWindow()