Figure ウィンドウが他のアプ​リケーションの前面に​出るのはなぜですか?

7 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2012 年 11 月 15 日
Figure ウィンドウを生成する MATLAB ファイルを実行しました。スクリプトが実行されている間、他のアプリケーションを使い始めました。MATLAB にフォーカスを当てていないのに、Figure が他のアプリケーションの前面に出てきます。

採用された回答

MathWorks Support Team
MathWorks Support Team 2012 年 11 月 15 日
この動作は、不具合ではなく、ソフトウェアの期待される動作です。ただし、弊社でもこの現象を認識しており、このニーズに対応できるよう、改善に取り組んでおります。
なお、全てのケースには適用できませんが、Figure がフォーカスを得るような原因を作る関数の使用を避けることにより、回避することができます。原因となる関数としては、FIGURE, AXES, GCF, GCA などが該当します。また、これらの関数を呼び出している関数も該当します。
例えば、次のようなコードを取り上げます。
c = 0;
for c = 1:10000
pause(1);
close all;
x = rand(1, 10);
y = rand(1, 10);
line(x, y);
set(gcf, 'Name', num2str(c));
end
このコードを以下のように再構成します。
f = figure;
a = axes;
c = 0;
for c = 1:10000
pause(1);
x = rand(1, 10);
y = rand(1, 10);
cla(a);
line(x, y, 'Parent', a);
set(f, 'Name', num2str(c));
end
ここでは、繰り返しごとに Figure を作成するのではなく、古い軸を CLA 関数でクリアしてその Figure に新しい軸を置きます。さらに、 GCA と GCF については、CLA、LINE、SET に適切なハンドルを渡すことで使用を回避することができます。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeグラフィックス についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!