MATLAB Answers

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

19 ビュー (過去 30 日間)
Musashi Ito
Musashi Ito 2021 年 3 月 8 日
コメント済み: Musashi Ito 2021 年 3 月 10 日
パソコンに2枚のモニタを接続して作業してます。figure 関数でウィンドウを表示するとプライマリのモニタにウィンドウが表示されます。セカンダリのモニタに figure のウィンドウを表示する方法をご存じの方いましたら、ご教示下さい。

採用された回答

Shunichi Kusano
Shunichi Kusano 2021 年 3 月 8 日
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 件のコメント
Musashi Ito
Musashi Ito 2021 年 3 月 10 日
ありがとうございます。Position のプロパティで制御してみたいと思います。セカンダリのモニタに表示したいだけなのですが、ディスプレイサイズから計算しないといけないんですね・・・

サインインしてコメントする。

その他の回答 (0 件)

タグ

製品

Community Treasure Hunt

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

Start Hunting!