解像度の異なるディス​プレイにおいてGUI​の表示位置が変わるの​はなぜですか?

3 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 21 Dec 2010
解像度の異なるディスプレイにおいてGUIDEで作成したGUIの表示位置が変わります。回避方法を教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 23 Jun 2020
Edited: MathWorks Support Team on 23 Jun 2020
GUI上にあるオブジェクトの 'Units' プロパティが 'pixels' や 'characters' などに指定されていると解像度やシステムフォントの違いによって大きさが変わる可能性があります。
環境に依存しないようにオブジェクトの位置を指定するには、各オブジェクトの 'Units' を 'Normalized' もしくは、'centimeters' などの絶対的な単位に設定します。
'Normalized'は、オブジェクトのサイズを基準とした 0~1 までの正規化した値です。
なお、各オブジェクトの 'Position' 等を設定している場合、'Units' を変更することで、当初のサイズと異なる可能性もありますので、ご注意ください。
GUIDE上で、全てのオブジェクトに対して、変更を適用する場合は、下記のように実行してください。
1. [メニュー] -> [編集]→[すべて選択] を選択し、全てのオブジェクトを選択した状態にします。
2. [表示]→[プロパティインスペクタ] から 'Units' を変更します。
panel 内にオブジェクトを含む場合などは、下記のようなコードを OpeningFcn コールバックに挿入することで、単位を一括変更できます。
structfun(@(x)set(x,'Units','normalized'), handles)
また、テキスト表示に使用されているフォントがインストールされていない環境で実行した場合、代替フォントでの表示により、レイアウトが崩れる場合があります。ロケールが異なるような環境で実行する場合には、できるだけ、日本語を使用しない、もしくは、一般的なフォントを使用するようにすることをお勧めします。

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!