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

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

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 15 Nov 2012
この動作は、不具合ではなく、ソフトウェアの期待される動作です。ただし、弊社でもこの現象を認識しており、このニーズに対応できるよう、改善に取り組んでおります。
なお、全てのケースには適用できませんが、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 に適切なハンドルを渡すことで使用を回避することができます。

Più risposte (0)

Categorie

Scopri di più su グラフィックス in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!