移動先: 概要 戻り値 フラグ. Python 例.
scriptTable(
[name]
, [annotation=string], [backgroundColor=[float, float, float]], [cellChangedCmd=string], [clearRow=int], [clearTable=boolean], [columnWidth=[int, int]], [columns=int], [defineTemplate=string], [deleteRow=int], [docTag=string], [dragCallback=script], [dropCallback=script], [enable=boolean], [exists=boolean], [getCellCmd=string], [height=int], [insertRow=int], [isObscured=boolean], [label=[int, string]], [manage=boolean], [numberOfPopupMenus=boolean], [parent=string], [popupMenuArray=boolean], [preventOverride=boolean], [rows=int], [selectedRow=boolean], [underPointerRow=boolean], [useTemplate=string], [visible=boolean], [width=int])
注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。
scriptTable は 「元に戻す」が可能、「照会」が可能、「編集」が可能 です。
このコマンドは、スクリプト テーブルのコントロールを作成、編集、照会します。
string | 作成されたスクリプト テーブルのコントロールへのフル パス名です。 |
戻り値の型は照会モードでは照会フラグが基になります。
annotation, backgroundColor, cellChangedCmd, clearRow, clearTable, columnWidth, columns, defineTemplate, deleteRow, docTag, dragCallback, dropCallback, enable, exists, getCellCmd, height, insertRow, isObscured, label, manage, numberOfPopupMenus, parent, popupMenuArray, preventOverride, rows, selectedRow, underPointerRow, 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'」)。
|
|
label(l)
|
[int, string]
|
 
|
|
指定したカラムのラベルを設定します。
カラム番号は 1 ベースです(つまり、先頭のカラムは 0 ではなく 1 です)。
|
|
columnWidth(cw)
|
[int, int]
|
 
|
|
指定したカラムの幅を設定します。カラム番号は 1 ベースです(つまり、先頭のカラムは 0 ではなく 1 です)。
|
|
selectedRow(sr)
|
boolean
|
|
|
選択したカレント行です。
返される行番号は 1 をベースにしたものです(すなわち、最初の行は 0 ではなく 1 です)。
|
|
underPointerRow(upr)
|
boolean
|
|
|
マウス カーソルがある行です。
返される行番号は 1 をベースにしたものです(すなわち、最初の行は 0 ではなく 1 です)。
|
|
getCellCmd(gcc)
|
string
|

|
|
セルの内容が必要になったときに呼び出される MEL プロシージャを設定します。プロシージャは、必要な値を含む行とカラムを指定する 2 つの整数引数で呼び出され、セルの値である文字列を返します。
渡される行とカラムの番号は 1 ベースです(つまり、(1,1) は左上のセルです)。このプロシージャは次のようなフォームになります。
global proc string procedureName(int $row, int $column)
|
|
cellChangedCmd(ccc)
|
string
|

|
|
セルの値が変更されたときに呼び出される MEL プロシージャを設定します。プロシージャは、値が変更された行とカラムを指定する 2 つの整数引数で呼び出されます。3 番目の引数は、そのセルに入力された文字列です。プロシージャは、その値を受け取るかどうかを示す整数値を返します(受け取る場合は true、受け取らない場合は false を返します)。
渡される行とカラムの番号は 1 ベースです(つまり、(1,1) は左上のセルです)。このプロシージャは次のようなフォームになります。
global proc int procedureName(int $row, int $column, string $value)
|
|
rows(r)
|
int
|
 
|
|
columns(c)
|
int
|
 
|
|
insertRow(ir)
|
int
|
|
|
指定した行の前に空の行を挿入します。新しいセルを埋めるために、-gcc フラグで指定したプロシージャが呼び出されます。
行番号は 1 ベースです(つまり、先頭の行は 0 ではなく 1 です)。
|
|
deleteRow(dr)
|
int
|
|
|
指定した行を削除します。行番号は 1 ベースです(つまり、先頭の行は 0 ではなく 1 です)。
|
|
clearRow(cr)
|
int
|
|
|
指定した行のすべてのセルの内容をクリアします。クリアされたセルを埋めるために、-gcc フラグで指定したプロシージャが呼び出されます。行番号は 1 ベースです(つまり、 先頭の行は 0 ではなく 1 です)。
|
|
clearTable(ct)
|
boolean
|
|
|
テーブル内のすべてのセルの内容をクリアします。
クリアされたセルを埋めるために、-gcc フラグで指定したプロシージャが呼び出されます。
|
|
: コマンドの作成モードで使用可能なフラグ
|
: コマンドの編集モードで使用可能なフラグ
|
: コマンドの照会モードで使用可能なフラグ
|
: タプルまたはリストとして渡された複数の引数を持てるフラグ
|
import maya.cmds as cmds
window = cmds.window(widthHeight=(400, 300))
form = cmds.formLayout()
table = cmds.scriptTable(rows=4, columns=2, label=[(1,"Column 1"), (2,"Column 2")])
addButton = cmds.button(label="Add Row",command="cmds.scriptTable(table, edit=True,insertRow=1)")
deleteButton = cmds.button(label="Delete Row",command="cmds.scriptTable(table, edit=True,deleteRow=1)")
cmds.formLayout(form, edit=True, attachForm=[(table, 'top', 0), (table, 'left', 0), (table, 'right', 0), (addButton, 'left', 0), (addButton, 'bottom', 0), (deleteButton, 'bottom', 0), (deleteButton, 'right', 0)], attachControl=(table, 'bottom', 0, addButton), attachNone=[(addButton, 'top'),(deleteButton, 'top')], attachPosition=[(addButton, 'right', 0, 50), (deleteButton, 'left', 0, 50)] )
cmds.showWindow( window )