5

Windows 7 PCでmatlab R2012a(7.14.0.737)64ビットを使用しています。2台のモニターを持っています。2番目のモニター(左側)でmatlab GUIの図を開くことができるようにしたい。

コマンドラインの開始図では、正常に動作します。

h = figure( ... , 'position',[some -value on the other screen y w h)

ただし、1) GUI ウィンドウのプロパティに正しい位置の値が入力されている、および/または 2) コードを使用しているにもかかわらず、GUI フィギュアは常に 1 番目のモニターで作成されます。

set( hObject, 'position',[some -value on the other screen y w h)

GUIオープニング機能で。

ただし、このコードを出力関数に配置すれば問題ありません。図が表示され、次に移動するのを見るとエレガントではありません。GUIの値は、私が望むように設定されています。matlabによって無視されたようです。何か案は?

  • アップデート *

それ以来movegui(fig, 'onscreen')、ガイドで作成された図を開くときにmatlabが呼び出すことを読みました。引数。問題は、それをオーバーライドする方法、または「画面上」を他のモニターに設定する方法だと思います。この点についてはまだ解決策がありません

4

2 に答える 2

0

matlab の GUIDE GUI には、開くと自動的に呼び出される既定の関数がいくつかあることに気付くでしょう。これらの関数の少なくとも 2 つがデフォルトの Figure の配置をオーバーライドするのは、matlab の厄介な機能です。おそらく、ここで説明したソリューションの 1 つを変更して、問題を解決できます。

于 2012-12-06T22:25:37.630 に答える
0

これは、 GUIDE内から直接行うことはできません。

回避策

Figure をエクスポートします: GuideMenu -> File -> Export

次の行を置き換えます。

movegui(gui_hFigure,'onscreen');

と:

set(gcbf, 'position',[some -value on the other screen y w h)

私 ( R2012a ) の場合、これはエクスポートされた GUI の 330 行目あたりに表示されます。

...
  % openfig (called by local_openfig below) does this for guis without
  % the LayoutFcn. Be sure to do it here so guis show up on screen.
  movegui(gui_hFigure,'onscreen');   %% COMMENT OUT OR REPLACE THIS LINE
else
  gui_hFigure = local_openfig(gui_State.gui_Name, 
...
于 2012-12-07T18:14:10.743 に答える