私は約8ヶ月の休憩の後にPythonスクリプティングをしています。本当にいくつかの洞察力が必要です。 私は、カメラのフィルムバック/フィルムのゲート属性をコーディングで設定または変更しようとしていましたが、多くの試行錯誤の末に、最後にコマンドを見つけましたが、今は別の問題を抱えています...Pythonは2D配列を追加しますか?
最初の項目
list01 = ['itemA-01', 'itemB-02', 'itemC-02', 'itemD-01', 'itemE-01', 'itemF-03']
list01.insert(0,"")
for index, item in enumerate(list01):
print index, item
: - リストで、Pythonの用語でインデックスは通常、しかし、マヤ語のこのfilmbackMenuのために、0から始まり、それは次のように私のフィルムバックのメニューがある場合と仮定1.
cmds.optionMenu('filmbackMenu', edit = True, select = 0) # Errors-out, stating that it is out of range
cmds.optionMenu('filmbackMenu', edit = True, select = 1) # No errors
から始まります私はその方法を見つけることができます私の項目は、ダミー/空白を挿入してインデックス '1'から始めるようにしてください。 '-01'が含まれているものを除外し、list02に名前とインデックスの両方を追加しようとしているので、ただ名前かインデックスのどちらかであるが、私は両方が必要であると信じている。これは私のコードセクションです:
list02 = []
for i in list01:
if '-01' in str(i):
list02.append(i)
# Result: ['itemA-01', 'itemD-01', 'itemE-01'] # The index here should be 1, 4, 5
は、それは名前とインデックスの両方を一緒に追加することは可能ですか?たとえば、itemA-01 1、 'itemD-01' 4、 'itemE-01' 5? インデックスをUIに表示する必要はありませんが、名前は変わりませんが、最終的にインデックス値を取得する必要があります。
私のコードは以下のとおりです。必要であれば自由に批判してください。
import maya.cmds as cmds
list01 = ['itemA-01', 'itemB-02', 'itemC-02', 'itemD-01', 'itemE-01', 'itemF-03']
list01.insert(0,"")
for index, item in enumerate(list01):
print index, item
list02 = []
for i in list01:
if '01' in str(i):
list02.append(i)
window = cmds.window()
cmds.columnLayout()
cmds.optionMenu (label = 'Select a format')
for x in list02:
cmds.menuItem(label=x)
cmds.button(label = 'Ok')
cmds.button(label = 'Cancel')
cmds.showWindow(window)
私のUIで起こることは、ユーザーの選択に応じてです。私はitemD-01指数4で選択された場合は、次のコードを実行する必要があります
cmds.optionMenu('filmbackMenu', edit = True, select = 4)
を選択するためのフラグが変更されることに注意してください。..
クールに並んで、インデックスとアイテム側を保存することができます使用して、私はこのように列挙できることを知らなかった... 'cmd'buttonの' command'フラグの値をどのように返すことができるかどうか考えていらっしゃいましたか? 'print item'のようなものを試してみたところ、最後の項目はlist02 .. – dissidia
のように印刷されます。' cmds.optionMenu( 'filmbackMenu'、edit = True、select = list02 [0]) '?...私はマヤに慣れていないか、ユーザーがボタンをクリックしたときに値を返すことを意味する – danidee
'cmds.button(label = 'Ok'、command =( 'print list02 [0]'))のような簡単なことをしています。実際には、選択に基づいてインデックス値を取得/返そうとしています。 UIは関数内にあります。 'def ui()'は、実行全体が別の関数で行われるものです。 – dissidia