Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

uiprogressdlg

進行状況ダイアログ ボックスの作成

説明

d = uiprogressdlg(fig) は、Figure fig の確定型進行状況ダイアログ ボックスを表示し、ProgressDialog オブジェクトを返します。この Figure は関数 uifigure を使用して作成されていなければなりません。

d = uiprogressdlg(fig,Name,Value) は、ペア引数 Name,Value を使用して ProgressDialog プロパティの値を指定します。プロパティの値を使用して、ダイアログ ボックスの外観と動作を制御します。たとえば、タイトルまたはメッセージをダイアログ ボックスに追加したり、不確定型進行状況バーを指定したりできます。

すべて折りたたむ

Figure と進行状況ダイアログ ボックスを作成する myprogress1.m と呼ばれるプログラム ファイルを作成します。コード内の 3 つの異なる点にある Value プロパティと Message プロパティを更新します。

function myprogress1
    fig = uifigure;
    d = uiprogressdlg(fig,'Title','Please Wait',...
        'Message','Opening the application');
    pause(.5)

    % Perform calculations
    % ...
    d.Value = .33; 
    d.Message = 'Loading your data';
    pause(1)

    % Perform calculations
    % ...
    d.Value = .67;
    d.Message = 'Processing the data';
    pause(1)

    % Finish calculations
    % ...
    d.Value = 1;
    d.Message = 'Finishing';
    pause(1)

    % Close dialog box
    close(d);
end

進行状況ダイアログ ボックスを表示するプログラムを実行します。

myprogress1

特異値分解中に Figure を作成し、不確定型進行状況バーを表示する myprogress2.m と呼ばれるプログラム ファイルを作成します。

function myprogress2
    fig = uifigure;
    d = uiprogressdlg(fig,'Title','Computing SVD',...
        'Indeterminate','on');

    % Do the SVD computation
    svd(rand(5000));

    % close the dialog box
    close(d);
end

Indeterminate プロパティを 'on' に設定すると、進行状況バーがアニメーション化されて、予測された完了時間がないことを示します。計算が完了した後、関数 close はダイアログ ボックスを閉じます。

特異値分解を実行し、進行状況ダイアログ ボックスを表示するプログラムを実行します。

myprogress2

pi の値の近似中に、Figure を作成し、進行状況バーを表示する myprogress3.m という名前のプログラム ファイルを作成します。

function myprogress3
    fig = uifigure;
    d = uiprogressdlg(fig,'Title','Approximating Pi',...
        'Message','1','Cancelable','on');

    % Approximate pi^2/8 as: 1 + 1/9 + 1/25 + 1/49 + ...
    pisqover8 = 1;
    denom = 3;
    valueofpi = sqrt(8 * pisqover8);
    steps = 20000;
    for step = 1:steps 
        % Check for Cancel button press
        if d.CancelRequested
            break
        end
        % Update progress, report current estimate
        d.Value = step/steps;
        d.Message = sprintf('%12.9f',valueofpi);

        % Calculate next estimate
        pisqover8 = pisqover8 + 1 / (denom * denom);
        denom = denom + 2;
        valueofpi = sqrt(8 * pisqover8);
    end

    % Close the dialog box
    close(d);
end

Cancelable プロパティを 'on' に設定すると、既定のラベル [キャンセル] の付いたキャンセル ボタンが作成されます。for ループの最初のコマンドは d.CancelRequested の値をチェックして、ユーザーがキャンセル ボタンをクリックしたかどうかを確認します。値が true の場合、プログラムはループを終了します。最後に、for ループが終了した後、またはユーザーがキャンセルした後に、close(d) コマンドがダイアログ ボックスを閉じます。

Pi を近似して進行状況ダイアログ ボックスを表示するプログラムを実行します。

myprogress3

入力引数

すべて折りたたむ

ターゲット Figure。Figure オブジェクトとして指定します。この Figure は関数 uifigure で作成されていなければなりません。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: d = uiprogressdlg(uifigure,'Value',0.25)

メモ

ここでは、プロパティの一部だけを紹介しています。完全な一覧については、ProgressDialog のプロパティ を参照してください。

完了率。01 の数値として指定します。この値が 1 のとき、進行状況バーは最大長に達しています。コードの複数の箇所で Value を変更すると、実行中のアプリの進行状況を視覚的に表示できます。

データ型: double

メッセージ。文字ベクトル、文字ベクトルの cell 配列、または string 配列として指定します。このメッセージは、ダイアログ ボックス内にある進行状況バーの上に表示されます。

複数行のテキストを表示するには、文字ベクトルの cell 配列または string 配列を指定します。配列の各要素は、テキストの行に対応します。各要素のハード ブレイク ('\n' など) はテキストの追加行を作成します。

例: d = uiprogressdlg(uifigure,'Message','Calculating result.');

タイトル。文字ベクトルまたは string スカラーとして指定します。このタイトルはダイアログ ボックスのタイトル バーに表示されます。

例: d = uiprogressdlg(uifigure,'Title','Calculating');

不確定型進行状況。'off' または 'on' もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

このプロパティを 'on' に設定すると、アニメーション化されたバーが表示されますが、進行状況に関する具体的な情報は表示されません。このアニメーションは、計算にかかる時間がわからない場合に便利です。

不確定型進行状況バーが無期限に表示されないようにするには、計算の完了後に関数 close を呼び出します。

キャンセルの許可。'off' または 'on' もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

値を 'on' に指定すると、ダイアログ ボックスにキャンセル ボタンが表示されます。CancelText プロパティを指定すると、ボタン ラベルをカスタマイズできます。

キャンセルを許可する場合、CancelRequested プロパティの値を確認して、値が true のときに関数 close を呼び出さなければなりません。それ以外の場合、ダイアログ ボックスは無期限に表示されます。

R2018a で導入