figure ウィンドウをセカンダリのモニタに表示する方法

53 visualizzazioni (ultimi 30 giorni)
Musashi Ito
Musashi Ito il 8 Mar 2021
Commentato: Musashi Ito il 10 Mar 2021
パソコンに2枚のモニタを接続して作業してます。figure 関数でウィンドウを表示するとプライマリのモニタにウィンドウが表示されます。セカンダリのモニタに figure のウィンドウを表示する方法をご存じの方いましたら、ご教示下さい。

Risposta accettata

Shunichi Kusano
Shunichi Kusano il 8 Mar 2021
figureの位置とサイズはPositionプロパティで制御できるので、一度figureでウィンドウを出した後、好きな場所に持ってくるのが良いと思います。
私の場合、プライマリウィンドウの上にセカンダリウィンドウを設定しているので、下記figPosのようにy座標にプライマリウィンドウのy方向の画素数を上乗せして設定すると、セカンダリウィンドウの真ん中にウィンドウが出るようになります。
いちいちこれを全部入力するのは煩雑ですので、適当な名前で関数化してパスを通しておくと使いやすくなると思います。
% デフォルトとするfigureのサイズ
w = 500;
h = 500;
% ディスプレイサイズの取得
r = groot;
dispSize1 = r.MonitorPositions(1,3:4); % プライマリ
dispSize2 = r.MonitorPositions(2,3:4); % セカンダリ
% figureのポジションの定義
% [左下座標X 左下座標Y 幅 高さ]の順
% 原点はプライマリウィンドウの左下隅
figPos = [dispSize2(1)/2 - w/2, ...
dispSize1(2) + dispSize2(2)/2 - h/2, ...
w, h];
% ウィンドウを生成してPositionプロパティを変える
fig = figure;
fig.Position = figPos;
  1 Commento
Musashi Ito
Musashi Ito il 10 Mar 2021
ありがとうございます。Position のプロパティで制御してみたいと思います。セカンダリのモニタに表示したいだけなのですが、ディスプレイサイズから計算しないといけないんですね・・・

Accedi per commentare.

Più risposte (0)

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!