Main Content

ListBox のプロパティ

リスト ボックスの外観と動作の制御

リスト ボックスは、項目をリストで表示するための UI コンポーネントです。プロパティがリスト ボックスの外観と動作を制御します。ドット表記を使用して、特定のオブジェクトとプロパティを参照します。

fig = uifigure;
list = uilistbox(fig);
list.Items = ["Red","Green","Blue"];

リスト ボックス

すべて展開する

値。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]

項目または項目データのリストにおけるコンポーネント値のインデックス。正の整数として指定します。

ほとんどの場合、Value プロパティを使用してコンポーネント値をクエリおよび更新できます。ただし、ValueIndex プロパティは、Items プロパティと ItemsData プロパティの両方が空でない場合に便利です。この場合、ValueIndex プロパティを使用して、現在の値に対応する Items の要素をクエリできます。

fig = uifigure;
lb = uilistbox(fig, ...
    "Items",["Red","Green","Blue"], ...
    "ItemsData",["#F00","#0F0","#00F"]);
idx = lb.ValueIndex;
 
disp(lb.Items(idx) + ": " + lb.Value)
Red: #F00

フォントと色

すべて展開する

フォント名。システムでサポートされているフォント名として指定します。既定のフォントは、特定のオペレーティング システムとロケールによって異なります。

指定したフォントが利用できない場合、MATLAB は、アプリが実行中のシステムで利用可能なフォントから最もよく一致するフォントを使用します。

例: 'Arial'

フォント サイズ。正の数値として指定します。測定単位はピクセルです。既定のフォント サイズは、特定のオペレーティング システムとロケールによって異なります。

例: 14

フォントの太さ。次のいずれかの値として指定します。

  • 'normal' — 各フォントで定義されている既定の太さ

  • 'bold''normal' よりも太い文字

すべてのフォントに太字フォントがあるとは限りません。太字がないフォントの場合、'bold' を指定すると標準フォントの太さになります。

フォントの角度。'normal' または 'italic' として指定します。すべてのフォントにイタリックのフォントの角度があるわけではありません。イタリックがないフォントの場合、'italic' を指定すると標準フォントの角度になります。

フォントの色。RGB 3 成分、16 進数カラー コードまたは表にリストされたオプションのいずれかとして指定します。

RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード "#FF8800""#ff8800""#F80"、および "#f80" は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

背景色。RGB 3 成分、16 進数カラー コード、または表にリストされた色オプションのいずれかとして指定します。

RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード "#FF8800""#ff8800""#F80"、および "#f80" は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

この プロパティ は読み取り専用です。

関数 uistyle を使用して作成されて追加されたスタイルの構成。n 行 3 列の table 配列として返されます。table 配列の各行は、リスト ボックスに現在適用されているスタイルに対応します。引き続き追加されたスタイルには、スタイル順序番号 n+1 が付与されます。Target 列と TargetIndex 列は、スタイルが追加されたリスト ボックスの部分を指定します。Style 列は、スタイルのクラス名を示します。

関数 removeStyle を使用してリスト ボックスからスタイルを削除する場合に、このプロパティを使用します。

例: スタイルの削除

まず、2 つのスタイルをリスト ボックスに追加します。

fig = uifigure;
fig.Position = [100 100 300 250];
lb = uilistbox(fig);

s1 = uistyle("FontColor","blue");
s2 = uistyle("FontColor","red");

addStyle(lb,s1,"item",1);
addStyle(lb,s2,"item",[2 3 4]);

List box with four items. The first item has a blue font color and the last three items have a red font color.

lb.StyleConfigurations をクエリすると、MATLAB で 2 行 3 列の table 配列が返されます。最初に青のフォント スタイルがリスト ボックスに追加されたため、青のフォント スタイルのスタイル順序番号は 1 です。レベル スタイルの TargetIndex{[ 1]} は、スタイルがリスト ボックスの最初の項目に適用されたことを示します。同様に、2 番目のスタイルがリスト ボックスの最後の 3 つの項目に追加されています。

lb.StyleConfigurations
ans =

  2×3 table

         Target    TargetIndex              Style          
         ______    ___________    _________________________

    1     item      {[    1]}     1×1 matlab.ui.style.Style
    2     item      {[2 3 4]}     1×1 matlab.ui.style.Style

スタイル順序番号 2 を指定して、リスト ボックスに追加された 2 番目のスタイルを削除します。コンポーネントの外観が最初のスタイルのみを使用するように更新されます。

removeStyle(lb,2)

List box with four items. The first item has a blue font color and the last three items have a black font color.

対話機能

すべて展開する

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

  • 'on' — オブジェクトを表示します。

  • 'off' — オブジェクトを削除せずに非表示にします。非表示の UI コンポーネントのプロパティには引き続きアクセスできます。

アプリの起動を高速化するには、起動時に表示する必要のないすべての UI コンポーネントの Visible プロパティを 'off' に設定します。

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

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

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

  • このプロパティを 'on' に設定した場合、アプリ ユーザーはコンポーネントを操作できます。

  • このプロパティを 'off' に設定した場合、コンポーネントはグレー表示されます。これは、アプリ ユーザーがコンポーネントを操作することができず、コンポーネントはコールバックをトリガーしないことを示します。

ツールヒント。文字ベクトル、文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。このプロパティを使用して、実行時にユーザーがポインターをコンポーネントに合わせるとメッセージが表示されるようにします。コンポーネントが無効になっている場合でも、ツールヒントは表示されます。複数行のテキストを表示するには、文字ベクトルの cell 配列または string 配列を指定します。配列の各要素は、テキストの各行になります。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。

コンテキスト メニュー。関数 uicontextmenu を使用して作成された ContextMenu オブジェクトとして指定します。このプロパティは、コンポーネントを右クリックしたときにコンテキスト メニューを表示するために使用します。

位置

すべて展開する

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

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

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

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

例: [100 100 100 200]

リスト ボックスの内側の位置とサイズ。[left bottom width height] として指定します。位置の値の基準は親コンテナーです。すべての測定単位はピクセルです。このプロパティ値は、Position プロパティと同一です。

この プロパティ は読み取り専用です。

リスト ボックスの外側の位置とサイズ。[left bottom width height] として返されます。位置の値の基準は親コンテナーです。すべての測定単位はピクセルです。このプロパティ値は、Position プロパティと同一です。

レイアウト オプション。GridLayoutOptions オブジェクトとして指定します。このプロパティは、グリッド レイアウト コンテナーの子であるコンポーネントのオプションを指定します。コンポーネントがグリッド レイアウト コンテナーの子ではない場合 (たとえば、Figure またはパネルの子である場合) は、このプロパティは空で、効果はありません。しかし、コンポーネントがグリッド レイアウト コンテナーの子である場合は、GridLayoutOptions オブジェクトの Row プロパティおよび Column プロパティを設定して、グリッドの目的の行と列にコンポーネントを配置することができます。

たとえば、以下のコードは、リスト ボックスをその親グリッドの 3 行目の 2 列目に配置します。

g = uigridlayout([4 3]);
list = uilistbox(g);
list.Layout.Row = 3;
list.Layout.Column = 2;

リスト ボックスが複数の行または列にまたがるようにするには、Row または Column プロパティを 2 要素ベクトルとして指定します。たとえば、次のリスト ボックスは 2 列目から 3 列目にまたがります。

list.Layout.Column = [2 3];

コールバック

すべて展開する

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

  • 関数ハンドル。

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

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

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

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

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

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

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

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

  • 関数ハンドル。

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

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

このコールバック関数は、ユーザーがリスト ボックス内の任意の位置をクリックしたときに実行されます。

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

次の表は、ClickedData オブジェクトのプロパティを示しています。

プロパティ
InteractionInformation

アプリ ユーザーがクリックしたコンポーネント内の位置に関する情報。この情報は、次のプロパティをもつオブジェクトとして保存されます。

  • Item

  • ScreenLocation

  • Location

ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.InteractionInformation.Item は、ユーザーがリスト ボックスのどの項目をクリックしたかを返します。

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

次の表に、リスト ボックス コンポーネントに関連付けられている InteractionInformation オブジェクトのプロパティを示します。

プロパティ
Item

クリックされたリスト ボックス項目のインデックス。スカラーとして返されます。

ユーザーのクリックしたリスト ボックスの領域が項目に関連付けられていない場合、Item は空の配列になります。

Location

リスト ボックスの親コンテナーの左下隅を基準とした、ユーザーのクリック位置。[x y] の形式の 2 要素ベクトルとして返されます。

x の値は、親コンテナーの左端からクリック位置までの水平距離を表します。y の値は、親コンテナーの下端からクリック位置までの垂直距離を表します。距離はピクセル単位で測定されます。

ScreenLocation

プライマリ ディスプレイの左下隅を基準とした、ユーザーのクリック位置。[x y] の形式の 2 要素ベクトルとして返されます。

x の値は、ディスプレイの左端からクリック位置までの水平距離を表します。y の値は、ディスプレイの下端からクリック位置までの垂直距離を表します。距離はピクセル単位で測定されます。

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

例: リスト ボックスがクリックされたときにウィンドウを開く

色を表す項目を含むリスト ボックスを作成します。ユーザーがリスト ボックスをクリックしたときに実行される、openWindow という名前の ClickedFcn コールバック関数を指定します。関数 openWindow 内で次を行います。

  • event.InteractionInformation オブジェクトを使用して、ユーザーが項目をクリックしたかどうかに関する情報にアクセスします。

  • ユーザーが (項目に関連付けられていないリスト ボックス内の場所ではなく) 項目をクリックした場合、ユーザーがクリックした位置とクリックした項目に関連付けられている色をクエリします。

  • ユーザーがクリックした位置の項目の色をもつ新しいウィンドウを開きます。

この例を試すには、次のコードを新しいスクリプトに保存して、実行します。リスト ボックスの項目をクリックして新しいウィンドウを開きます。

fig = uifigure;
lb = uilistbox(fig);
lb.Items = ["Red","Yellow","Blue"];
lb.ItemsData = ["r","y","b"];
lb.ClickedFcn = @openWindow;

function openWindow(lb,event)
idx = event.InteractionInformation.Item;
if ~isempty(idx)
    p = event.InteractionInformation.ScreenLocation;
    color = lb.ItemsData(idx);
    fig2 = uifigure("Position",[p 150 150]);
    fig2.Color = color;
end
end

ダブルクリックしたときのコールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

このコールバック関数は、ユーザーがリスト ボックス内の任意の位置をダブルクリックしたときに実行されます。

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

次の表は、DoubleClickedData オブジェクトのプロパティを示しています。

プロパティ
InteractionInformation

アプリ ユーザーがクリックしたコンポーネント内の位置に関する情報。この情報は、次のプロパティをもつオブジェクトとして保存されます。

  • Item

  • ScreenLocation

  • Location

ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.InteractionInformation.Item は、ユーザーがリスト ボックスのどの項目をダブルクリックしたかを返します。

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

次の表に、リスト ボックス コンポーネントに関連付けられている InteractionInformation オブジェクトのプロパティを示します。

プロパティ
Item

ダブルクリックされたリスト ボックス項目のインデックス。スカラーとして返されます。

ユーザーのダブルクリックしたリスト ボックスの領域が項目に関連付けられていない場合、Item は空の配列になります。

Location

リスト ボックスの親コンテナーの左下隅を基準とした、ユーザーのダブルクリック位置。[x y] の形式の 2 要素ベクトルとして返されます。

x の値は、親コンテナーの左端からダブルクリック位置までの水平距離を表します。y の値は、親コンテナーの下端からクリック位置までの垂直距離を表します。距離はピクセル単位で測定されます。

ScreenLocation

プライマリ ディスプレイの左下隅を基準とした、ユーザーのダブルクリック位置。[x y] の形式の 2 要素ベクトルとして返されます。

x の値は、ディスプレイの左端からダブルクリック位置までの水平距離を表します。y の値は、ディスプレイの下端からダブルクリック位置までの垂直距離を表します。距離はピクセル単位で測定されます。

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

例: リスト ボックスがダブルクリックされたときにウィンドウを開く

色を表す項目を含むリスト ボックスを作成します。ユーザーがリスト ボックスをダブルクリックしたときに実行される、openWindow という名前の DoubleClickedFcn コールバック関数を指定します。関数 openWindow 内で次を行います。

  • event.InteractionInformation オブジェクトを使用して、ユーザーが項目をダブルクリックしたかどうかに関する情報にアクセスします。

  • ユーザーが (項目に関連付けられていないリスト ボックス内の場所ではなく) 項目をダブルクリックした場合、ユーザーがダブルクリックした位置とダブルクリックした項目に関連付けられている色をクエリします。

  • ユーザーがダブルクリックした位置の項目の色をもつ新しいウィンドウを開きます。

この例を試すには、次のコードを新しいスクリプトに保存して、実行します。リスト ボックスの項目をダブルクリックして新しいウィンドウを開きます。

fig = uifigure;
lb = uilistbox(fig);
lb.Items = ["Red","Yellow","Blue"];
lb.ItemsData = ["r","y","b"];
lb.DoubleClickedFcn = @openWindow;

function openWindow(lb,event)
idx = event.InteractionInformation.Item;
if ~isempty(idx)
    p = event.InteractionInformation.ScreenLocation;
    color = lb.ItemsData(idx);
    fig2 = uifigure("Position",[p 150 150]);
    fig2.Color = color;
end
end

オブジェクト作成関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer のコールバックを参照してください。

このプロパティは、MATLAB がオブジェクトを作成するときに実行されるコールバック関数を指定します。MATLAB は CreateFcn コールバックを実行する前に、すべてのプロパティ値を初期化します。CreateFcn プロパティを指定しない場合、MATLAB は既定の作成関数を実行します。

既存のコンポーネントに CreateFcn プロパティを設定しても効果はありません。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、作成中のオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。

オブジェクト削除関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer のコールバックを参照してください。

このプロパティは、MATLAB がオブジェクトを削除するときに実行されるコールバック関数を指定します。MATLAB は、オブジェクトのプロパティを破棄する前に DeleteFcn コールバックを実行します。DeleteFcn プロパティを指定しない場合、MATLAB は既定の削除関数を実行します。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、削除されるオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。

コールバック実行制御

すべて展開する

コールバックの割り込み。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

このプロパティは実行中のコールバックが割り込み可能かどうかを決定します。次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中" コールバックは、現在実行しているコールバックです。

  • "割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。

MATLAB は、コールバック キューを処理するコマンドを実行するたびにコールバックの割り込み動作を判別します。これらのコマンドには、drawnowfigureuifiguregetframewaitforpause があります。

実行中コールバックにこれらのコマンドが含まれていない場合、割り込みは発生しません。MATLAB は、実行中コールバックの実行を先に終了させ、その後に割り込みコールバックを実行します。

実行中コールバックにこれらのいずれかのコマンドが含まれている場合、実行中コールバックを所有するオブジェクトの Interruptible プロパティに応じて割り込みが発生するかどうかが決まります。

  • Interruptible の値が 'off' の場合、割り込みは発生しません。代わりに、割り込みコールバックを所有するオブジェクトの BusyAction プロパティに応じて、割り込みコールバックが破棄されるかコールバック キューに追加されるかが決まります。

  • Interruptible の値が 'on' の場合、割り込みが発生します。MATLAB は、コールバック キューの次回処理時に、実行中コールバックの実行を停止し、割り込みコールバックを実行します。割り込みコールバックが完了した後、MATLAB は実行中だったコールバックの実行を再開します。

メモ

コールバックの割り込みと実行は、以下の状況では動作が異なります。

  • 割り込みコールバックが DeleteFcnCloseRequestFcn または SizeChangedFcn コールバックの場合、Interruptible プロパティの値にかかわらず割り込みが発生します。

  • 実行中のコールバックが関数 waitfor を現在実行している場合、Interruptible プロパティの値にかかわらず割り込みが発生します。

  • 割り込みコールバックが Timer オブジェクトで所有されている場合、Interruptible プロパティの値にかかわらずスケジュールに従ってコールバックが実行されます。

メモ

MATLAB は、割り込みが発生したときにプロパティの状態や表示を保存しません。たとえば、gca コマンドや gcf コマンドから返されたオブジェクトは、別のコールバックを実行するときに変更されている可能性があります。

コールバック キューイング。'queue' または 'cancel' として指定します。BusyAction プロパティは MATLAB による割り込みコールバックの実行の処理方法を決定します。次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中" コールバックは、現在実行しているコールバックです。

  • "割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。

BusyAction プロパティによってコールバック キューイングの動作が決まるのは、次の両方の条件を満たす場合のみです。

  • 実行中コールバックに drawnowfigureuifiguregetframewaitforpause などのコールバック キューを処理するコマンドが含まれている。

  • 実行中コールバックを所有するオブジェクトの Interruptible プロパティの値が 'off' である。

これらの条件に当てはまる場合、割り込みコールバックを所有するオブジェクトの BusyAction プロパティに応じて MATLAB による割り込みコールバックの処理方法が決まります。BusyAction プロパティは次の値を取ることができます。

  • 'queue' — 割り込みコールバックをキューに入れ、実行中のコールバックが終了した後に処理されるようにします。

  • 'cancel' — 割り込みコールバックを実行しません。

この プロパティ は読み取り専用です。

削除状態。matlab.lang.OnOffSwitchState 型の on/off logical 値として返されます。

MATLAB は、DeleteFcn コールバックが実行を開始すると、BeingDeleted プロパティを 'on' に設定します。コンポーネント オブジェクトが存在しなくなるまで BeingDeleted プロパティは 'on' に設定されたままです。

クエリや変更の前にオブジェクトが削除されようとしていないか確認するために BeingDeleted プロパティの値をチェックします。

親/子

すべて展開する

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

オブジェクト ハンドルの可視性。'on''callback' または 'off' として指定します。

このプロパティは、オブジェクトの親がもつ子のリストにおけるそのオブジェクトの可視性を制御します。オブジェクトがその親オブジェクトのリストで、子として可視できない場合、オブジェクト階層の検索またはプロパティのクエリによってオブジェクトを取得する関数は、そのオブジェクトを返しません。これらの関数には、getfindobjclf および close が含まれます。オブジェクトは参照できない場合も有効です。オブジェクトにアクセスできる場合は、そのプロパティを設定および取得して、それをオブジェクトに作用する任意の関数に渡すことができます。

HandleVisibility の値説明
'on' オブジェクトは常に参照できます。
'callback'オブジェクトはコールバック内から、あるいはコールバックにより呼び出される関数から参照できます。しかし、コマンド ラインから呼び出される関数からは参照できません。このオプションを使用すると、コマンド ラインからのオブジェクトへのアクセスがブロックされますが、コールバック関数からのアクセスは許可されます。
'off'オブジェクトは常に参照できません。このオプションは、他の関数による UI の意図しない変更を防止するために役立ちます。HandleVisibility'off' に設定すると、その関数の実行中にオブジェクトが一時的に非表示になります。

識別子

すべて展開する

この プロパティ は読み取り専用です。

グラフィックス オブジェクトのタイプ。'uilistbox' として返されます。

オブジェクト識別子。文字ベクトルまたは string スカラーとして指定します。オブジェクトの識別子として機能する一意の Tag 値を指定できます。コードの他の部分からオブジェクトにアクセスする必要がある場合、関数 findobj を使用して Tag 値に基づいてオブジェクトを検索できます。

ユーザー データ。任意の MATLAB 配列として指定します。たとえば、スカラー、ベクトル、行列、cell 配列、文字配列、table、または構造体を指定できます。このプロパティを使用して、任意のデータをオブジェクトに保存します。

App Designer を使用している場合は、UserData プロパティを使用する代わりに、アプリでパブリック プロパティまたはプライベート プロパティを作成してデータを共有します。詳細については、App Designer アプリ内でのデータの共有を参照してください。

バージョン履歴

R2016a で導入

すべて展開する

参考

関数

ツール