Main Content

uilistbox

リスト ボックス コンポーネントの作成

説明

lb = uilistbox は、リスト ボックスを新しい Figure ウィンドウ内に作成し、ListBox オブジェクトを返します。MATLAB® は関数 uifigure を呼び出してこの Figure を作成します。

lb = uilistbox(parent) は指定された親コンテナー内にリスト ボックスを作成します。親には、関数 uifigure を使用して作成された Figure か、またはその子コンテナーのいずれかを指定できます。

lb = uilistbox(___,Name,Value) は、1 つ以上の Name,Value のペアの引数を使用して、ListBox のプロパティを指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

すべて折りたたむ

Figure ウィンドウにリスト ボックスを作成します。

fig = uifigure('Position', [100 100 300 250]);
lbx = uilistbox(fig);

List box in a UI figure window. The list box has four items: "Item 1", "Item 2", "Item 3", and "Item 4". "Item 1" is selected.

リスト ボックスを作成します。

fig = uifigure;
lbx = uilistbox(fig);

リスト ボックスで複数選択が可能かどうかを調べます。

multi = lbx.Multiselect
multi =

     off

複数選択を有効にします。

lbx.Multiselect = 'on';

ユーザーがリスト内の項目を選択したときにアクションを実行するリスト ボックスを作成します。

次のコードを MATLAB パス上に selectlistbox.m として保存します。

次のコードはリスト ボックスとテキスト エリアを含むアプリを作成します。ValueChangedFcn コールバックはテキスト エリアを更新してリスト ボックスの選択を表示します。

function selectlistbox

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

% Create text area
txt = uitextarea(fig,...
    'Position',[125 90 100 22],...
    'Value','First');

% Create list box
lbox = uilistbox(fig,...
    'Position',[125 120 100 78],...
    'Items',{'First','Second','Third'},... 
    'ValueChangedFcn', @updateEditField); 

% ValueChangedFcn callback
function updateEditField(src,event) 
    txt.Value = src.Value;
end

end

selectlistbox を実行し、リストからオプションを選択します。

A list box and an edit field component in a UI figure window. The list box has items "First", "Second", and "Third". "Second" is selected, and the edit field text is "Second".

各項目に数値が関連付けられたリスト ボックスを作成します。ユーザーがリスト ボックス内の項目を選択すると、関連付けられた数値が編集フィールドに表示されます。

次のコードを MATLAB パス上に dataselection.m として保存します。次のコードはリスト ボックスと数値編集フィールドを含むアプリを作成します。リストの各項目には温度が関連付けられています。ユーザーがリスト内の項目を選択すると、ValueChangedFcn コールバックは対応する温度を編集フィールドに表示します。

function dataselection
fig = uifigure('Position',[100 100 350 275]);

% Create Numeric Edit Field
ef = uieditfield(fig,'numeric',...
    'Position',[125 90 100 22]);

% Create List Box
lbox = uilistbox(fig,...
    'Items', {'Freezing', 'Warm', 'Hot', 'Boiling'},...
    'ItemsData', [0, 25, 40, 100],...
    'Position',[125 120 100 78],...
    'ValueChangedFcn', @selectionChanged);

% ValueChangedFcn callback
function selectionChanged(src,event)
    % Display list box data in edit field
    ef.Value = src.Value;
end

end

dataselection を実行し、リスト内の項目を選択します。選択と関連付けられた温度を反映するように、数値編集フィールドが更新されます。

A list box and a numeric edit field component in a UI figure window. The list box has items "Freezing", "Warm", "Hot", and "Boiling". "Boiling" is selected, and the numeric edit field value is 100.

複数項目の選択を許可するリスト ボックスを含むアプリを作成します。リスト ボックスの下のテキスト エリアに選択された項目を表示するように、ValueChangedFcn コールバックを記述します。

次のコードを MATLAB パス上に multiselect.m として保存します。

function multiselect
fig = uifigure('Position',[100 100 350 275]);

% Create Text Area
txt = uitextarea(fig,...
    'Position',[125 80 100 50]);

% Create List Box
lbox = uilistbox(fig,...
    'Position',[125 150 100 78],...
    'Multiselect','on',...
    'ValueChangedFcn',@selectionChanged);

% ValueChangedFcn callback
function selectionChanged(src,event)
    txt.Value = src.Value;
end

end

multiselect を実行し、リストから項目を選択します。テキスト エリアに選択が表示されます。

A list box and a text area component in a UI figure window. The list box has items "Item 1", "Item 2", "Item 3", and "Item 4". Both "Item 1" and "Item 3" are selected, and the text area has two lines of text: "Item 1" and "Item 3".

入力引数

すべて折りたたむ

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

名前と値の引数

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

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

例: 'Items',{'Model 1','Model 2', 'Model 3', 'Model 4'} は、アプリ ユーザーに表示するリスト ボックスのオプションを上から下に指定します。

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

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

選択なしを指定するには、Value を空の cell 配列に設定します。

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

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

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]

複数の項目の選択。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

ユーザーによる複数項目の同時選択を可能にするには、このプロパティを 'on' に設定します。

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

  • 関数ハンドル。

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

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

このコールバック関数は、リスト ボックス内の別の項目を選択するときに実行されます。Value プロパティの設定がプログラムにより変更される場合には実行されません。

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

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

プロパティ
Valueアプリ ユーザーによる最新操作の後のリスト ボックスの値
PreviousValueアプリ ユーザーによる最新操作の前のリスト ボックスの値
Sourceコールバックを実行するコンポーネント
EventName'ValueChanged'

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

親コンテナーを基準にしたリスト ボックスの位置とサイズ。ベクトル [left bottom width height] として指定します。次の表で、ベクトルの各要素について説明します。

要素説明
left親コンテナーの内側左端からリスト ボックスの外側左端までの距離
bottom親コンテナーの内側下端からリスト ボックスの外側下端までの距離
widthリスト ボックスの外側の右端と左端の間の距離
heightリスト ボックスの外側の上端と下端の間の距離

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

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

例: [100 100 100 200]

ヒント

プログラムによりスクロールしてリスト ボックスの項目やリストの最上部または最下部を表示するには、関数 scroll を使用します。

バージョン履歴

R2016a で導入

すべて展開する