移動先: 概要 戻り値 フラグ. Python 例.
formLayout(
[string]
, [annotation=string], [attachControl=[string, string, int, string]], [attachForm=[string, string, int]], [attachNone=[string, string]], [attachOppositeControl=[string, string, int, string]], [attachOppositeForm=[string, string, int]], [attachPosition=[string, string, int, int]], [backgroundColor=[float, float, float]], [childArray=boolean], [defineTemplate=string], [docTag=string], [dragCallback=script], [dropCallback=script], [enable=boolean], [exists=boolean], [height=int], [isObscured=boolean], [manage=boolean], [numberOfChildren=boolean], [numberOfDivisions=int], [numberOfPopupMenus=boolean], [parent=string], [popupMenuArray=boolean], [preventOverride=boolean], [useTemplate=string], [visible=boolean], [width=int])
注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。
formLayout は 「元に戻す」が可能、「照会」が可能、「編集」が可能 です。
このコマンドはフォームのレイアウト コントロールを作成します。フォーム レイアウトでは、その直接の子であるコントロールの絶対的な位置決めと相対的な位置決めができます。
コントロールには、上、左、下と右の 4 つのエッジがあります。
子の位置決めには、左右と上下の 2 つの方向しかありません。アタッチ フラグは、アタッチするエッジに名前を付ける引数(2 番目の引数)からアタッチメントの方向を取ります。子のいずれかのエッジまたはすべてのエッジをアタッチすることができます。アタッチするには次の 6 つの方法があります。
- フォームへのアタッチ: フォーム レイアウトの関連する側にエッジをアタッチします。したがって、-attachForm button3 "left" は、ボタンの左エッジをフォームの左エッジにアタッチします。
- フォームの反対側へのアタッチ: エッジを、フォーム レイアウトの一番遠くの側に対してアタッチします。
- 別のコントロールへのアタッチ: エッジを、指定した他のコントロールの最も近いエッジにアタッチします。
- 別のコントロールの反対側へのアタッチ: エッジを、別のコントロールの一番遠くの側に対してアタッチします。
- 位置へのアタッチ: エッジを、フォーム レイアウトの位置にアタッチします。位置は、-nd/numDivisions 値の固定比率として表されます。この値のデフォルトは 100 なので、フォームのサイズのパーセンテージとして考えるのが最も簡単です。
- 何にもアタッチしない: エッジを何にもアタッチしません。
子のコントロールのサイズによってこのエッジの位置が決まります。
エッジの各アタッチメントには、コントロールを視覚的に区別するためのオフセットがある場合があります。
デフォルトの位置決め関係は特にないため、フォームに子を表示させるには、少なくとも各方向に 1 つのエッジがアタッチされていなくてはなりません。
注: フラグ定義では、引数は次の規則に従います。
- controlは、フォーム レイアウトの直接の子である必要があります。
- edgeは「top」、「left」、「bottom」、「right」のいずれかである必要があります。
- 位置は、0 から -nd/numberOfDivisions フラグで指定される分割数までで、測定値としてフォームの幅の割合が与えられます。
これは通常 0-100 を意味するため、position はパーセンテージとして考えることができます。
- offset はピクセルの整数値です。
これらは多目的なフラグなので、1 回のコマンドでアタッチメントをいくつでも作成できます。
注: フォームレイアウトの詳細については、オンライン マニュアル『User-interface Creation』を参照してください。
戻り値の型は照会モードでは照会フラグが基になります。
annotation, attachControl, attachForm, attachNone, attachOppositeControl, attachOppositeForm, attachPosition, backgroundColor, childArray, defineTemplate, docTag, dragCallback, dropCallback, enable, exists, height, isObscured, manage, numberOfChildren, numberOfDivisions, numberOfPopupMenus, parent, popupMenuArray, preventOverride, useTemplate, visible, 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
|
 
|
|
コントロールの可視の状態です。デフォルトでは、コントロールは表示されます。コントロールの実際の外見も、その親レイアウトの可視の状態によって
異なることに注意してください。
|
|
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 です(Windows のみのフラグです)。
|
|
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'」)。
|
|
numberOfChildren(nch)
|
boolean
|
|
|
childArray(ca)
|
boolean
|
|
|
numberOfDivisions(nd)
|
int
|
 
|
|
フォームの水平と垂直分割数を指定します。0 より大きい値を指定する必要があります。
|
|
attachForm(af)
|
[string, string, int]
|
 
|
|
引数は次のとおりです。コントロール、エッジ、オフセット。
有効なエッジの値は、「top」、「bottom」、「left」、または「right」です。指定したコントロールをフォームにアタッチして、指定した量だけオフセットします。
|
|
attachOppositeForm(aof)
|
[string, string, int]
|
 
|
|
引数は次のとおりです。コントロール、エッジ、オフセット。
有効なエッジの値は、「top」、「bottom」、「left」、または「right」です。フォームの反対側にコントロールをアタッチします。
|
|
attachControl(ac)
|
[string, string, int, string]
|
 
|
|
引数は次のとおりです。コントロール、エッジ、オフセット、コントロール。有効なエッジの値は以下のとおりです:「top」、「bottom」、「left」、または「right」です。別のコントロールにコントロールをアタッチします。
|
|
attachOppositeControl(aoc)
|
[string, string, int, string]
|
 
|
|
引数は次のとおりです。コントロール、エッジ、オフセット、コントロール。有効なエッジの値は以下のとおりです:「top」、「bottom」、「left」、または「right」です。別のコントロールの反対側にコントロールをアタッチします。
|
|
attachPosition(ap)
|
[string, string, int, int]
|
 
|
|
引数は次のとおりです。コントロール、エッジ、オフセット、位置。有効なエッジの値は、「top」、「bottom」、「left」、または「right」です。フォームの位置にコントロールをアタッチします。
|
|
attachNone(an)
|
[string, string]
|
 
|
|
引数は次のとおりです。コントロール、エッジ。有効なエッジの値は、「top」、「bottom」、「left」、または「right」です。何にもコントロールをアタッチしません。
|
|
: コマンドの作成モードで使用可能なフラグ
|
: コマンドの編集モードで使用可能なフラグ
|
: コマンドの照会モードで使用可能なフラグ
|
: タプルまたはリストとして渡された複数の引数を持てるフラグ
|
import maya.cmds as cmds
window = cmds.window()
form = cmds.formLayout(numberOfDivisions=100)
b1 = cmds.button()
b2 = cmds.button()
column = cmds.columnLayout()
cmds.button()
cmds.button()
cmds.button()
cmds.formLayout( form, edit=True, attachForm=[(b1, 'top', 5), (b1, 'left', 5), (b2, 'left', 5), (b2, 'bottom', 5), (b2, 'right', 5), (column, 'top', 5), (column, 'right', 5) ], attachControl=[(b1, 'bottom', 5, b2), (column, 'bottom', 5, b2)], attachPosition=[(b1, 'right', 5, 75), (column, 'left', 0, 75)], attachNone=(b2, 'top') )
cmds.showWindow( window )