ジャンプ先: 概要. 戻り値. フラグ. Python 例.

概要

scriptTable( [name] , [annotation=string], [backgroundColor=[float, float, float]], [cellBackgroundColorCommand=script], [cellChangedCmd=script], [cellForegroundColorCommand=script], [cellIndex=[int, int]], [cellValue=string], [clearRow=int], [clearTable=boolean], [columnFilter=[int, string]], [columnWidth=[int, int]], [columns=int], [defineTemplate=string], [deleteRow=int], [docTag=string], [dragCallback=script], [dropCallback=script], [editable=boolean], [enable=boolean], [enableBackground=boolean], [excludingHeaders=boolean], [exists=boolean], [fullPathName=string], [getCellCmd=script], [height=int], [insertRow=int], [isObscured=boolean], [label=[int, string]], [manage=boolean], [multiEditEnabled=int], [noBackground=boolean], [numberOfPopupMenus=boolean], [parent=string], [popupMenuArray=boolean], [preventOverride=boolean], [rowHeight=boolean], [rows=int], [selectedCells=[int,...]], [selectedColumns=[int,...]], [selectedRow=boolean], [selectedRows=[int,...]], [selectionBehavior=int], [selectionMode=int], [sortEnabled=boolean], [underPointerColumn=boolean], [underPointerRow=boolean], [useDoubleClickEdit=boolean], [useTemplate=string], [visible=boolean], [visibleChangeCommand=script], [width=int])

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

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

このコマンドは、スクリプト テーブルのコントロールを作成、編集、照会します。

戻り値

string作成されたスクリプト テーブルのコントロールへのフル パス名

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

フラグ

annotation, backgroundColor, cellBackgroundColorCommand, cellChangedCmd, cellForegroundColorCommand, cellIndex, cellValue, clearRow, clearTable, columnFilter, columnWidth, columns, defineTemplate, deleteRow, docTag, dragCallback, dropCallback, editable, enable, enableBackground, excludingHeaders, exists, fullPathName, getCellCmd, height, insertRow, isObscured, label, manage, multiEditEnabled, noBackground, numberOfPopupMenus, parent, popupMenuArray, preventOverride, rowHeight, rows, selectedCells, selectedColumns, selectedRow, selectedRows, selectionBehavior, selectionMode, sortEnabled, underPointerColumn, underPointerRow, useDoubleClickEdit, useTemplate, visible, visibleChangeCommand, width
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
exists(ex) boolean create
指定したオブジェクトが存在するかどうかによって、true または false を返します。他のフラグは無視されます。
defineTemplate(dt) string create
他の任意のフラグと引数を解析し、かつ引数で指定したコマンド テンプレートに追加するモードに、コマンドのモードを変更します。templateName が現在のテンプレートとして設定されていれば、その後コマンドが実行されるたびに、この引数が既定の引数として使用されます。
useTemplate(ut) string create
コマンドに、現在以外のコマンド テンプレートの使用を強制します。
parent(p) string createquery
コントロールの親のレイアウトです。
enable(en) boolean createqueryedit
コントロールの有効、無効です。既定では true に設定されていて、コントロールは有効になっています。false を指定するとコントロールはグレー表示になって無効になります。
width(w) int createqueryedit
コントロールの幅を指定します。コントロールは親のレイアウトの条件によって無効にされない限り、このサイズを保持しようとします。
height(h) int createqueryedit
コントロールの高さです。コントロールは親のレイアウトの条件によって無効にされない限り、このサイズを保持しようとします。
visible(vis) boolean createqueryedit
コントロールの可視の状態です。既定では、コントロールは表示されます。コントロールの実際の外見も、その親レイアウトの可視の状態によって異なることに注意してください。
visibleChangeCommand(vcc) script createqueryedit
コントロールの可視の状態が変更されたときに実行されるコマンドです。
isObscured(io) boolean query
コントロールが実際に表示されるかどうかを返します。コントロールは、次の場合に隠れた状態になります。非表示の場合、別のコントロールで(完全に、または部分的に)ブロックされた場合、コントロールまたは親のレイアウトを制御できない場合、あるいはコントロールのウィンドウが非表示またはアイコン化されている場合。
manage(m) boolean createqueryedit
コントロールの状態を管理します。管理されていないコントロールは表示されず、画面の領域も占有しません。既定では、コントロールは管理できるように作成されます。
numberOfPopupMenus(npm) boolean query
このコントロールにアタッチされるポップアップ メニューの数を返します。
popupMenuArray(pma) boolean query
このコントロールにアタッチされる全ポップアップ メニューの名前を返します。
preventOverride(po) boolean createqueryedit
true の場合、コントロールのコントロールは親のレイアウトの条件によって無効にされ右マウス ボタン メニューを使用したコントロール アトリビュートのオーバーライドは無効です。
annotation(ann) string createqueryedit
コントロールに文字列値で注釈を付けます。
backgroundColor(bgc) [float, float, float] createqueryedit
コントロールのバックグラウンド カラーです。引数は、赤、緑、青のカラー成分に対応しています。それぞれの成分の値は、0.0~1.0 です。
backgroundColor を設定する場合、enableBackground を false に指定していない限り、バックグラウンドは自動的に有効になります。
noBackground(nbg) boolean createedit
コントロールのバックグラウンドをクリア/リセットします。バックグラウンドは、true を渡すと一切描画されず、false を渡すと描画されます。このフラグの状態は、このコントロールの子に継承されます。
enableBackground(ebg) boolean createqueryedit
コントロールのバックグラウンド カラーを有効にします。
docTag(dtg) string createqueryedit
コントロールにドキュメンテーション フラグを追加します。ドキュメンテーション フラグは、階層のようなディレクトリ構造になっています。例: -dt render/multiLister/createNode/material
dragCallback(dgc) script createedit
中マウス ボタンを押すとコールされるコールバックを追加します。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 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'」)。

fullPathName(fpn) string query
すべての親を含むウィジェットのフル パス名を返します。
label(l) [int, string] createeditmultiuse
指定したカラムのラベルを設定します。カラム番号は 1 ベースです(つまり、先頭のカラムは 0 ではなく 1 です)。
columnWidth(cw) [int, int] createeditmultiuse
指定したカラムの幅を設定します。カラム番号は 1 ベースです(つまり、先頭のカラムは 0 ではなく 1 です)。
selectedRow(sr) boolean query
選択した現在行です。行番号は 1 ベースです(つまり、先頭の行は 0 ではなく 1 です)。
selectedCells(sc) [int,...] queryedit
セルを選択するか、現在選択されているセルを返します。インデックスのリストを返します。各ペアの 1 番目は行、2 番目は列で、選択したセルごとに繰り返されます。返されるセルの番号は 1 ベースです(つまり、先頭の行は 0 ではなく 1、先頭の列は 0 ではなく 1 です)。
selectedRows(srs) [int,...] queryedit
編集モードでは、引数として与えられた行を選択します。照会モードでは、全体を選択した行のインデックスのリストを返します。行番号は 1 ベースです。
selectedColumns(scs) [int,...] queryedit
列を選択するか、現在選択されている列を返します。全体を選択した各列のインデックスのリストを返します。返される列番号は 1 ベースです。
rowHeight(rh) boolean createqueryedit
scriptTable の各行の高さを設定します。
multiEditEnabled(mee) int createqueryedit
True: scriptTable はマルチ編集関数をサポートします。
useDoubleClickEdit(udc) boolean createqueryedit
これによってセル編集モードをコントロールします。
False: セルをクリックして選択します(行選択では行の最後のセルが編集されます。列選択では列の最後のセルが編集されます)(既定)。
True: セルをダブルクリックした場合のみ編集します。
underPointerRow(upr) boolean query
マウス カーソルがある行です。行番号は 1 ベースです(つまり、先頭の行は 0 ではなく 1 です)。
underPointerColumn(upc) boolean query
マウス カーソルがある列です。返されたカラム番号は 1 ベースです(つまり、先頭のカラムは 0 ではなく 1 です)。
editable(ed) boolean createqueryedit
テーブルの編集状態です。既定では true に設定されていて、テーブルを編集できます。false の場合は、テーブルは「読み取り専用」になるので、テーブルに入力することはできません。
getCellCmd(gcc) script createedit
セルの内容が必要な場合にコールするスクリプトを設定します。プロシージャは、必要な値を含む行とカラムを指定する 2 つの整数引数でコールされ、セルの値である文字列を返します。渡される行とカラムの番号は 1 ベースです(つまり、(1,1)は左上のセルです)。このプロシージャは次のようなフォームになります。

global proc string procedureName(int $row, int $column)

cellBackgroundColorCommand(cbc) script createedit
セルのバックグラウンド カラーが必要な場合にコールするスクリプトを設定します。プロシージャは、必要な値を含む行とカラムを指定する 2 つの整数引数でコールされ、セルの RGB カラーの値である整数の配列を返します。渡される行とカラムの番号は 1 ベースです(つまり、(1,1)は左上のセルです)。このプロシージャは次のような形式になります。
global proc int[] procedureName(int $row, int $column) {
return {255,0,0}; // セルのバックグラウンド カラーとして赤を返します。
}
cellForegroundColorCommand(cfc) script createedit
セルのフォアグラウンド カラーが必要な場合にコールするスクリプトを設定します。プロシージャは、必要な値を含む行とカラムを指定する 2 つの整数引数でコールされ、セルの RGB カラーの値である整数の配列を返します。渡される行とカラムの番号は 1 ベースです(つまり、(1,1)は左上のセルです)。このプロシージャは次のような形式になります。
global proc int[] procedureName(int $row, int $column) {
return {0,0,0}; // テキスト カラーとして黒を返します。
}
cellChangedCmd(ccc) script createedit
セルの値が変更された場合にコールするスクリプトを設定します。プロシージャは、値が変更された行とカラムを指定する 2 つの整数引数でコールされます。3 番目の引数は、そのセルに入力された文字列です。プロシージャは、その値を受け取るかどうかを示す整数値を返します(受け取る場合は 1、受け取らない場合は 0 を返します)。渡される行とカラムの番号は 1 ベースです(つまり、(1,1)は左上のセルです)。このプロシージャは次のようなフォームになります。

global proc int procedureName(int $row, int $column, string $value)

selectionBehavior(sb) int createqueryedit
選択の動作を設定します。有効な値は 0~2 の範囲です。0 - 単一項目の選択。1 - 行のみの選択。2 - 列のみの選択。
selectionMode(sm) int createqueryedit
選択モードを設定します。有効な値は 0~4 の範囲です。
0 - 項目を選択できません。
1 - ユーザが項目を選択した場合、既に選択している項目は解除されます。選択された項目をクリックしても選択を解除することはできません。
2 - ユーザが通常の方法で項目を選択した場合、その項目の選択状態が切り替わり、その他の項目はそのままです。マウスをドラッグすると、複数の項目を切り替えることができます。
3 - ユーザが通常の方法で項目を選択した場合、選択がクリアされ、新しい項目が選択されます。ただし、ユーザが[Ctrl]キーを押しながら項目をクリックした場合、クリックされた項目が切り替わり、その他の項目はすべてそのままです。ユーザが[Shift]キーを押しながら項目をクリックした場合、現在の項目とクリックした項目の間ですべての項目が、クリックした項目の状態に応じて選択または選択解除されます。マウスをドラッグすると、複数の項目を選択できます。
4 - ユーザが通常の方法で項目を選択した場合、選択がクリアされ、新しい項目が選択されます。ただし、ユーザが[Shift]キーを押しながら項目をクリックした場合、現在の項目とクリックした項目の間ですべての項目が、クリックした項目の状態に応じて選択または選択解除されます。
rows(r) int createqueryedit
テーブルにローの番号を設定します。
columns(c) int createqueryedit
テーブルにカラム番号を設定します。
sortEnabled(se) boolean createqueryedit
scriptTable を列ごとにソートできるようにします。既定値は false で、行全体がソートされます。
excludingHeaders(eh) boolean query
行または列の数を照会する場合、返される数にはヘッダーは含まれません。
insertRow(ir) int edit
指定した行の前に空の行を挿入します。新しいセルを埋めるために、-gcc フラグで指定したプロシージャがコールされます。行番号は 1 ベースです(つまり、先頭の行は 0 ではなく 1 です)。
deleteRow(dr) int edit
指定した行を削除します。行番号は 1 ベースです(つまり、先頭の行は 0 ではなく 1 です)。
clearRow(cr) int edit
指定した行のすべてのセルの内容をクリアします。クリアされたセルを埋めるために、-gcc フラグで指定したプロシージャが呼び出されます。行番号は 1 ベースです(つまり、先頭の行は 0 ではなく 1 です)。
clearTable(ct) boolean edit
テーブル内のすべてのセルの内容をクリアします。クリアされたセルを埋めるために、-gcc フラグで指定したプロシージャが呼び出されます。
cellIndex(ci) [int, int] queryedit
cellValue とともに使用され、行と列のインデックスを与えます。このフラグと引数は、-q フラグより前にコマンドに渡されなければなりません(例を参照)。

照会モードでは、このフラグに値が必要になります。

cellValue(cv) string queryedit
-cellIndex フラグで参照される行と列のインデックスによって、テーブルのセル値を照会および設定します。
columnFilter(cf) [int, string] createedit
指定した列を文字列の値でフィルタします。列 0 にフィルタを設定するとすべての列にフィルタが適用されます。フィルタは大文字と小文字を区別し、ワイルドカードをサポートします。ワイルドカード照合: ワイルドカード照合は完全な正規表現よりもはるかに簡単で、機能は 4 つしかありません。c 任意の文字は、次に説明するものを除いて、その文字自体を表します。したがって、c は文字 c に一致します。? は 任意の 1 文字に一致します。これは、完全な正規表現における . と同じです。* は 0 文字以上の任意の文字列に一致します。これは、完全な正規表現における .* と同じです。[...] 文字列の集合は、完全な正規表現と同様に角括弧で表されます。文字クラス内では、バックスラッシュには特別な意味はありません。たとえば、「y*u」、「??Val??」、「[MyThe]Value」または「MyValue」内の任意の文字列で「MyValue」を検索できます。行番号は 1 ベースです(つまり、先頭の行は 0 ではなく 1 です)。

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

Python 例

import maya.cmds as cmds

def edit_cell(row, column, value):
    return 1

window = cmds.window(widthHeight=(400, 300))
form = cmds.formLayout()
table = cmds.scriptTable(rows=4, columns=2, label=[(1,"Column 1"), (2,"Column 2")], cellChangedCmd=edit_cell)

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 )

# Set and query cells
cmds.scriptTable($table, cellIndex=1 1, edit=True,cellValue="MyValue")
scriptTable -cellIndex 1 1 -query -cellValue $table;

# Select and query rows, columns and cells
cmds.scriptTable(table, edit=True, selectedRows=[1, 3])
print cmds.scriptTable(table, query=True, selectedRows=True)
cmds.scriptTable(table, edit=True, selectedColumns=[1])
print cmds.scriptTable(table, query=True, selectedColumns=True)
cmds.scriptTable(table, edit=True, selectedCells=[1,2,2,1,3,2,4,1])
print cmds.scriptTable(table, query=True, selectedCells=True)

# Set a filter for the first column
cmds.scriptTable(table, edit=True, columnFilter=(1,"MyValue"))
# Set a filter for all columns
cmds.scriptTable(table, edit=True, columnFilter=(0,"MyValue"))