メッセージ1/8
APIで作成したダイアログボックスを[ok]選択後に消す方法を知りたい
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- パーマリンクを表示
- 印刷
- 報告
お世話になっております.
私は,fusionのapiをここ2年程触っている者です.
現在,コマンドを用いてドロップダウン式に選択を行う,ダイアログボックスの作成を行っております.
選択やその結果の他プログラムへの受け渡しなどは問題ないのですが,
[ok]を押したのにも関わらず,その後の処理の間もずっと選択に用いたダイアログボックスが表示されています.
(以下が該当のダイアログボックスです.名称が異なっていたら申し訳ありません.)
下のコードは,ダイアログが閉じた際のイベントハンドラーです.
class _StockDimDestroyHandler(adsk.core.CommandEventHandler):
def notify(self, args):
# ダイアログが閉じられた際の処理
# キャンセルが押された場合 (execute イベントが発生しない) は、
# スクリプトプロセスが残り続けないように終了する。
command = args.command
cmdDef = ui.commandDefinitions.itemById('getStockDimensionsCmd')
Bool = cmdDef.deleteMe()
if Bool:
ui.messageBox("消せた")
else:
ui.messageBox("消せなかった")
global cancelled
# ダイアログが閉じられた際の処理
if args.terminationReason == adsk.core.CommandTerminationReason.CompletedTerminationReason:
ui.messageBox('OKボタンが押されました。')
run_next_command()
elif args.terminationReason == adsk.core.CommandTerminationReason.CancelledTerminationReason:
ui.messageBox('キャンセルボタンが押されました。')
cancelled = True
run_next_command()
上記のように,deleteMe()を用いて消去やドロップダウンの非表示などを行いましたが,解決に至っていません.
特に,deleteMe()の場合,"消せた"と表示されることから,処理上はダイアログボックスが消去されたものと認識しています.
現在は,uiへの反映が遅れていることを軸に検討を進めております.
方法をご存知の方がいましたら,教えていただけますと幸いです.