ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

一部のコンポーネントが欠けていたり、部分的に隠れたりしている理由

変更内容の説明

新しいグラフィックス システムでは、座標軸、Uicontrol または Uitable が他のコンポーネントに隠れ、欠けているように見えることがあります。

以前のリリースでは、Children プロパティ内にリストされているコンポーネントの順序は、それらの作成順序と一致していました。ただし、この順序は画面上のコンポーネントの手前から奥への配置 (スタック順序) とは必ずしも一致しません。

以前のリリースでは、Uicontrol は常に Uipanel および Uibuttongroup の上に表示されていました。さらに、以前のリリースでは、座標軸を Uipanel の子にすることなく Uipanel の上に表示できました。

R2014b からは、Children プロパティ内にリストされているコンポーネントの順序は、子コンポーネントの画面上のスタック順序と一致します。UI に Uipanel または Uibuttongroup が含まれている場合、コードを更新しなければならないことがあります。

  • Uipanel または Uibuttongroup の上に座標軸、Uicontrol または Uitable を表示するには、相対的に配置するだけでは不十分です。あるコンポーネントを別のコンポーネントの上に置くには、上になるコンポーネントの Parent プロパティに、下に表示するコンポーネントを設定します。

  • Uipanel および Uibuttongroup の画面におけるスタック順序の動作は、Uicontrol および Uitable と同じです。

この新しい動作は、MATLAB® がより一貫した動作を提供するよう変更されたことを示しています。

プログラム レイアウトの復元

次のコードは、座標軸を含む上部パネルと、プッシュ ボタンおよびポップアップ メニューを含む下部パネルをもつ Figure を作成します。

hf = figure;
hb = uicontrol('Style','PushButton',...
               'String','Plot',...
               'Position',[175, 40, 60, 25]);
hpulabel = uicontrol('Style','text',...
                     'String', 'Plot Type',...
                     'Position', [300, 65, 60, 20]);
hpu = uicontrol('Style', 'popupmenu',...
                'String', {'bar', 'plot', 'stem'},...
                'Position',[310, 40, 60, 25]);
topp = uipanel('Title', 'Plot',...
               'Position',[0 .25 1 .75]);
ah = axes('Position', [.10, .35 .80 .60]);
bottomp = uipanel('Title','Plotting Options',...
                  'Position',[0 0 1 .25]);
以前のリリースでこのコードを実行すると、左側に Figure が生成されます。しかし、新しいグラフィックス システムでこのコードを実行すると、右側に Figure が生成されます。

コンテナーの後ろにコンポーネントが一切隠れないようにするには、コンポーネントがコンテナーの子になるよう、各コンポーネントの Parent プロパティを設定します。たとえば、次のコードは元の UI を復元します。

hf = figure;
topph = uipanel('Parent', hf,'Title', 'Plot',...
                'Position',[0 .25 1 .75]);
axes('Parent', topph, 'Position', [.10, .35 .80 .60]);
bottomph = uipanel('Parent', hf,'Title','Plotting Options',...
                   'Position',[0 0 1 .25])
hpulabel = uicontrol('Parent', bottomph, 'Style','text',...
                     'String', 'Plot Type',...
                     'Position', [300, 65, 60, 20]);
hb = uicontrol('Parent', bottomph, 'Style','PushButton',...
               'String','Plot',...
               'Position',[175, 40, 60, 25]);
hpu = uicontrol('Parent', bottomph, 'Style', 'popupmenu',...
                'String', {'bar', 'plot', 'stem'},...
                'Position',[310, 40, 60, 25]);

GUIDE レイアウトの復元

GUIDE UI のレイアウトを復元するには次の 2 つの手順が必要です。

  • GUIDE でレイアウトを修正する。

  • コンポーネントの子の順序を修正する。

GUIDE でレイアウトを修正するには、GUIDE で FIG ファイルを開き、[最背面へ移動] オプションを使用してスタックの順番を変更します。たとえば、このレイアウトのパネルをその他すべてのコンポーネントの背面に移動するには、パネルを右クリックし、[最背面へ移動] を選択します。

GUIDE での表示どおりにコンポーネントが表示されるようにコンポーネントの子の順序を修正するには、[表示][オブジェクト ブラウザー] を選択します。次に、コンポーネントを選択し、パネルまたはボタン グループ内で少し動かします。たとえば、パネル上で [Start] ボタンを選択して少し動かすと、そのボタンはパネルの子になります。

子コンポーネントはその親の上に表示されるので、プログラムの実行時に [Start] ボタンがパネルの上に表示されます。

関連するトピック