ドロップダウンリストとボタンを持つ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)
すべてのサポートは大変ありがとうございます。
ありがとう、@Icyvapor。あなたが言っていることが分かります。私は別のテキストラベルを作成するのではなく、そのテキストラベルを更新しようとしていました。これを念頭に置いて、setup_button_click関数の変数にテキストラベルを割り当てようとしました。次に、item_change関数でその変数のvisible属性をFalseに設定しました。しかし、属性を変更してもエラーメッセージは表示されませんでした。可視属性の新しい値を認識するために何かをリフレッシュする必要がありますか? – doubler