2017-10-19 10 views
0

ドロップダウンリストとボタンを持つUIを作成しました。ボタンをクリックしてもドロップダウンリストで何も選択されていない場合、エラーメッセージを追加しようとしています。私はボタンクリック機能にエラーメッセージを追加し、それは完全に動作します。私の問題は、変更コマンド機能でメッセージをクリア/非表示にしようとしたときに発生します。私はエラーが発生する "レイアウトで子供が多すぎる"。レイアウト要素に親を含める必要がある場所を読んだので、すべてが親であることを確認しました。私はsetParentとその要素の親属性の両方を試しましたが、違いはありませんでした。私はerrRowLayoutの列数を2に変更しようとしました。レイアウトエラーを取り除きましたが、メッセージがクリアされませんでした。私は、コードがどちらか一方の関数では動作するが、両方では動作しないことも発見した。私はこの午後、壁に向かって頭を叩いて、これを理解しようとしています。私はそれがおそらく私が見落としたことは非常にシンプルなものだと確信しています。optionMenuのPython Textコマンドを変更できませんchangeCommand関数

これらは、関連するコード行です。

# this is called from another function 
def createCustom(self): 
    self.characterOptionMenu = pm.optionMenu('characterOptionMenu', w=self.windowWidth, label=' Choose a Character:', changeCommand=self.item_change, parent=self.mainLayout)  
    self.errRowLayout = pm.rowLayout(numberOfColumns=1, columnWidth=[1, self.windowWidth], columnAlign=[1, 'center'], parent=self.mainLayout) 
    self.buttonRowLayout = pm.rowLayout(numberOfColumns=1, width=self.windowWidth, parent=self.mainLayout) 
    pm.button("Setup Character", w=self.windowWidth, h=30, command=self.setup_button_click, parent=self.buttonRowLayout)I 

def setup_button_click(self, *args): 
    selectedCharacter = pm.optionMenu(self.characterOptionMenu, q=True, value=True) 

    if selectedCharacter == ' ': 
     # create the error message 
     # this statement works 
     pm.text(label='Character cannot be blank.', visible=True, backgroundColor=[250, 128, 114], font='boldLabelFont', width=self.windowWidth, parent=self.errRowLayout) 
     return 

def item_change(self, *args): 
    selectedCharacter = pm.optionMenu(self.characterOptionMenu, q=True, value=True) 
    # this statement gives me the layout error 
    pm.text(label='', visible=False, parent=self.errRowLayout) 

すべてのサポートは大変ありがとうございます。

答えて

0

のように見えます。新しいテキストラベルを作成しています。すでに1つのテキストラベルを作成したsetup_button_click()では、同じ親を持つ別のラベルを作成しようとします。それはエラーを説明するはずです。あなたはおそらく編集=真でテキストを()を呼び出し、その後、あなたのテキストラベルコントロールのフルパス名を取得しようとする必要があり

http://download.autodesk.com/us/maya/2011help/commandspython/text.html

は上のドキュメントを参照してください。

+0

ありがとう、@Icyvapor。あなたが言っていることが分かります。私は別のテキストラベルを作成するのではなく、そのテキストラベルを更新しようとしていました。これを念頭に置いて、setup_button_click関数の変数にテキストラベルを割り当てようとしました。次に、item_change関数でその変数のvisible属性をFalseに設定しました。しかし、属性を変更してもエラーメッセージは表示されませんでした。可視属性の新しい値を認識するために何かをリフレッシュする必要がありますか? – doubler

関連する問題