Note
hou.InterruptableOperationはPythonシェルでは動作しません。 テスト用途であれば、代わりにシェルフツールを使用してください。
メソッド ¶
__init__(operation_name, long_operation_name=None, open_interrupt_dialog=False)
新しいInterruptableOperationを構築します。
operation_name
中断ダイアログの進捗バーに表示する中断可能な処理の説明。
long_operation_name
長くで高レベルな処理の説明。None
でない場合、その長い処理名が中断ダイアログ上の2番目の進捗バーに表示されます。
open_interrupt_dialog
中断ダイアログを表示させるかどうか決めます。
このコンストラクタはwith
ステートメント内からのみコールするようにしてください。
例:
with hou.InterruptableOperation( "Performing Tasks", open_interrupt_dialog=True) as operation: for i in num_tasks: # # ここでタスクを実行します。 # # 処理進捗を更新します。 percent = float(i) / float(num_tasks) operation.updateProgress(percent)
Python2.5では、with
ステートメントがデフォルトで有効になっていません。
有効にするには、スクリプト/モジュールの頭に、以下の行を追加する必要があります:
from __future__ import with_statement
複数の中断可能な処理をネストすることができます。これは、いくつかの小さな処理で構成されてる長い処理がある時に適しています。 例:
# 全体的に長い処理を開始します。 with hou.InterruptableOperation( "Performing", "Performing Tasks", open_interrupt_dialog=True) as operation: for i in num_tasks: # 長い処理進捗を更新します。 overall_percent = float(i) / float(num_tasks) operation.updateLongProgress(overall_percent) # サブ処理を開始します。 with hou.InterruptableOperation( "Performing Task %i" % i) as suboperation: for j in num_subtasks: # Update sub-operation progress. percent = float(j) / float(num_subtasks) suboperation.updateProgress(percent) # # ここでサブタスクを実行します。 #
updateLongProgress(percentage=-1.0, long_op_status=None)
長いまたは高レベルな処理の進捗パーセンテージとステータスを更新します。 同時に、その処理がユーザに中断されたかどうかチェックします。
percentage
0.0以上1.0以下の小数値。0.0の値は、進捗がないことを意味し、1.0の値はその処理が完了したことを意味します。 マイナスのパーセンテージは、その進捗パーセンテージが利用不可であることを示します。
long_op_status
長い処理の現行ステータスを記述したテキスト。このステータスは、中断ダイアログの2番目の進捗バーのテキストを上書きします。
その進捗バーの前のテキストを保持するには、このパラメータをNone
に設定します。
ユーザが処理の中断を選択すると、hou.OperationInterruptedを引き起こします。
InterruptableOperationオブジェクトがwith
ステートメント外で構築されていた場合、hou.OperationFailedを引き起こします。
updateProgress(percentage=-1.0)
処理の進捗パーセンテージを更新します。同時に、その処理がユーザに中断されたかどうかチェックします。
percentage
0.0以上1.0以下の小数値。0.0の値は、進捗がないことを意味し、1.0の値はその処理が完了したことを意味します。 マイナスのパーセンテージは、その進捗パーセンテージが利用不可であることを示します。
ユーザが処理の中断を選択すると、hou.OperationInterruptedを引き起こします。
InterruptableOperationオブジェクトがwith
ステートメント外で構築されていた場合、hou.OperationFailedを引き起こします。