Main Content

uidropdown

ドロップダウン コンポーネントを作成

説明

dd = uidropdown は、ドロップダウンを新しい Figure ウィンドウ内に作成し、DropDown オブジェクトを返します。MATLAB® は関数 uifigure を呼び出してこの Figure を作成します。

dd = uidropdown(parent) は、指定された親コンテナー内にドロップダウンを作成します。親には、関数 uifigure を使用して作成された Figure か、またはその子コンテナーのいずれかを指定できます。

dd = uidropdown(___,Name,Value) は、1 つ以上の Name,Value のペアの引数を使用して、オブジェクトのプロパティを指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。アプリ ユーザーがテキストを入力したり事前定義のオプションを選択できるドロップダウン コンポーネントを指定するには、Name,Value のペアである Editable,'on' を使用します。

すべて折りたたむ

既定の項目をもつドロップダウン コンポーネントを作成します。

fig = uifigure;
dd = uidropdown(fig);

UI figure window with a drop-down component. The drop-down has four options, labeled Option 1 through Option 4.

ドロップダウン コンポーネント内の任意の位置をクリックすると、ドロップダウン コンポーネントが開きます。

ドロップダウン コンポーネントを作成し、オプションを指定します。

fig = uifigure;
dd = uidropdown(fig,'Items',{'Red','Yellow','Blue','Green'},...
                     'Value','Blue');

UI figure with a drop-down component. The value of the drop-down is Blue.

選択したオプションに関連付けられている値を調べます。

value = dd.Value
value =

    'Blue'

既定では ItemsData プロパティは空なので、ドロップダウン コンポーネントの値はドロップダウン コンポーネントから選択された要素に対応します。

データ値をドロップダウン コンポーネントの個々の項目に関連付けます。

dd.ItemsData = [1 2 3 4];

選択したオプションに関連付けられている値を調べます。

value = dd.Value
value =

3

ItemsData プロパティ値が空でない場合、ドロップダウン コンポーネントの値は、選択された Items 値の要素に対応する ItemsData の値です。

fig = uifigure;
dd = uidropdown(fig,'Editable','on');

UI figure window with an editable drop-down component with value Option 1. The drop-down has a cursor at the end of the text.

ドロップダウン コンポーネント内で、下矢印を除く任意の位置をクリックすると、カーソルが挿入され、ドロップダウン コンポーネントにテキストを入力できます。

プロットとドロップダウン コンポーネントを作成します。アプリ ユーザーがドロップダウン コンポーネントから選択すると、プロットの色が変更されます。

MATLAB パス上の plotOptions.m に次のコードを保存します。次のコードはプロットとドロップダウン コンポーネントを含むウィンドウを作成します。アプリ ユーザーがドロップダウン コンポーネントの選択を変更すると、ValueChangedFcn コールバックはプロットの色を変更します。

function plotOptions
fig = uifigure; 
fig.Position(3:4) = [440 320];

ax = uiaxes('Parent',fig,...
    'Position',[10 10 300 300]);

x = linspace(-2*pi,2*pi);
y = sin(x);
p = plot(ax,x,y);
p.Color = 'Blue';

dd = uidropdown(fig,...
    'Position',[320 160 100 22],...
    'Items',{'Red','Yellow','Blue','Green'},...
    'Value','Blue',...
    'ValueChangedFcn',@(dd,event) selection(dd,p));
end

% Create ValueChangedFcn callback:
function selection(dd,p)
val = dd.Value;
p.Color = val;
end

plotOptions を実行します。ドロップダウン コンポーネントから [green] を選択すると、プロットの色が緑に変更されます。

UI figure window with a plot and a drop-down. The plot contains some data with a green line color, and the selected drop-down option is Green.

ドロップダウン コンポーネントとランプを作成します。アプリ ユーザーがドロップダウン コンポーネントから選択すると、ランプのサイズが変更されます。

MATLAB パス上の lampSize.m に次のコードを保存します。このコードは、ドロップダウン コンポーネントとランプを含む Figure ウィンドウを作成します。アプリ ユーザーがドロップダウン コンポーネントの選択を変更すると、ValueChangedFcn コールバックはランプのサイズを変更します。

function lampSize
% Create figure and components

fig = uifigure('Position',[100 100 300 275]);

lmp = uilamp(fig,...
    'Position',[100 30 20 20]);

dd = uidropdown(fig,...
    'Editable','on',...
    'Position',[84 204 100 20],...
    'Items',{'Size x 1','Size x 2','Size x 3','Size x 4'},...
    'ItemsData',[1 2 3 4],...
    'Value',1,...
    'ValueChangedFcn',@(dd,event) optionSelected(dd,lmp));
end

% Create ValueChangedFcn callback
function optionSelected(dd,lmp)
val = dd.Value;
s = [20 20];
switch val
    case {1, 2, 3, 4}  % User selected a defined option
        size = val * s;
        lmp.Position(3:4) = size;
    otherwise % User typed a value
        m = str2num(val);
        size = m * s;
        lmp.Position(3:4) = size;
end
end

lampSize を実行し、ドロップダウン コンポーネントからさまざまなオプションを選択します。

ドロップダウン コンポーネントに値を入力し、Enter キーを押します。ランプのサイズが変更されます (大きな値を入力した場合、ランプを表示するには Figure のサイズを変更しなければならないことがある)。

UI figure window with an editable drop-down above a large lamp. The value in the drop-down is 6.

入力引数

すべて折りたたむ

親コンテナー。関数 uifigure を使用して作成された Figure オブジェクト、またはその子コンテナー (TabPanelButtonGroup または GridLayout) のいずれかとして指定します。親コンテナーを指定しない場合、MATLAB は関数 uifigure を呼び出し、親コンテナーとして機能する新しい Figure オブジェクトを作成します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: 'Items',{'Red','Yellow','Blue'} はドロップダウン コンポーネントに表示するオプションを指定します。

以下にリストするプロパティは、利用できるプロパティの一部です。完全なリストについては、DropDown のプロパティ を参照してください。

値。Items または ItemsData の配列の要素として指定します。既定では、ValueItems の最初の要素になります。

ValueItems の要素として指定すると、その要素に一致するドロップダウン項目が選択されます。ItemsData が空でない場合、ValueItemsData の要素に設定しなければならず、ドロップダウンでリスト内の関連する項目が選択されます。

Editable'on' に設定されている場合、Value を文字ベクトルまたは string スカラーとして追加で指定できます。

ドロップダウン項目。文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。重複する要素を使用できます。ドロップダウン コンポーネントには Items の配列の要素数と同数のオプションが表示されます。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。

例: {'Red','Yellow','Blue'}

例: {'1','2','3'}

Items プロパティ値の各要素に関連付けるデータ。1 行 n 列の数値配列または 1 行 n 列の cell 配列として指定します。重複する要素を使用できます。

たとえば、Items 値を従業員の氏名に設定した場合、ItemsData 値を対応する従業員の ID 番号に設定できます。ItemsData 値はアプリ ユーザーに表示されません。

ItemsData 値と Items 値の配列要素数が一致しない場合、次のいずれかが起こります。

  • ItemsData 値が空の場合、Items 値のすべての要素がアプリ ユーザーに表示されます。

  • ItemsData 値の要素数が Items 値の要素数よりも多い場合、Items のすべての要素がアプリ ユーザーに表示されます。MATLAB は ItemsData の余分な要素を無視します。

  • ItemsData 値が空ではないが、要素数が Items 値の要素数よりも少ない場合、対応する要素が ItemsData 値にある Items 値の要素のみがアプリ ユーザーに表示されます。

例: {'One','Two','Three'}

例: [10 20 30 40]

ドロップダウン コンポーネントの編集可否の状態。'off' または 'on'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

Enable プロパティ値が 'off' である場合、編集可否のプロパティ値が 'on' でもアプリ ユーザーはドロップダウン コンポーネントのテキストを変更できません。

値が変更されたときのコールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

このコールバック関数は、ドロップダウン リストから別のオプションを選択するときに実行されます。Value プロパティがプログラムにより変更される場合には実行されません。

このコールバック関数は、ユーザーのドロップダウン操作に関する特定の情報にアクセスできます。MATLAB は、この情報を ValueChangedData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.PreviousValue はドロップダウンの直前の値を返します。ValueChangedData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。

次の表に、ValueChangedData オブジェクトのプロパティを示します。

プロパティ
Valueアプリ ユーザーによる最新操作の後のドロップダウン コンポーネントの値。
PreviousValueアプリ ユーザーによる最新操作の前のドロップダウン コンポーネントの値。
Edited

ドロップダウン コンポーネントに新しい値を入力した結果としてコールバックが実行されたかどうかを示す logical 値。

  • 0 (false) — アプリ ユーザーがドロップダウン コンポーネント Items プロパティの要素を選択または入力した場合。

  • 1 (true) — アプリ ユーザーがドロップダウン コンポーネントの Items プロパティの要素でない値を入力した場合。

Sourceコールバックを実行するコンポーネント。
EventName'ValueChanged'

コールバックの記述の詳細については、App Designer でコールバックを記述するを参照してください。

ドロップダウン メニューを開くコールバック関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

このプロパティは、ユーザーがクリックしてドロップダウン メニューを開いたときに実行するコールバック関数を指定します。このコールバックの使用方法として、ドロップダウン メニューのエントリのリストの動的な更新があります。

このコールバック関数は、ユーザーのドロップダウン操作に関する特定の情報にアクセスできます。MATLAB は、この情報を DropDownOpeningData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.Source は、ユーザーの操作に応じてコールバックをトリガーする DropDown オブジェクトを返します。DropDownOpeningData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。

次の表に、DropDownOpeningData オブジェクトのプロパティを示します。

プロパティ
Sourceコールバックを実行するコンポーネント
EventName'DropDownOpening'

コールバックの記述の詳細については、App Designer でコールバックを記述するを参照してください。

親を基準にしたドロップダウン コンポーネントの位置とサイズ。ベクトル [left bottom width height] として指定します。次の表で、ベクトルの各要素について説明します。

要素説明
left親コンテナーの内側左端からドロップダウン コンポーネントの外側左端までの距離
bottom親コンテナーの内側下端からドロップダウン コンポーネントの外側下端までの距離
widthドロップダウン コンポーネントの外側の右端と左端の間の距離
heightドロップダウン コンポーネントの外側の上端と下端の間の距離

すべての測定単位はピクセルです。

Position の値の基準は、親コンテナーの "描画可能領域" です。描画可能領域は、コンテナーの境界線の内側にある領域で、メニュー バーやタイトルなどの装飾が占める領域は含まれません。

例: [100 100 100 22]

バージョン履歴

R2016a で導入