Main Content

CheckBoxTree のプロパティ

チェック ボックス ツリーの外観と動作の制御

R2021a 以降

チェック ボックス ツリーは、アプリ内で項目のリストを階層形式で表すための UI コンポーネントで、各項目にはチェック ボックスが関連付けられています。プロパティがチェック ボックス ツリーの外観と動作を制御します。ドット表記を使用して、特定のオブジェクトとプロパティを参照します。

たとえば、このコードは 2 つの入れ子ノードがある基本的なチェック ボックス ツリーを作成し、CheckBoxTree オブジェクトを cbt として格納してから、ドット表記を使用して CheckedNodes プロパティを設定します。

fig = uifigure;
cbt = uitree(fig,'checkbox');
n1 = uitreenode(cbt);
n1.Text = 'Node 1';
n2 = uitreenode(n1);
n2.Text = 'Node 2';
cbt.CheckedNodes = [n1 n2];

チェック ボックス ツリーを作成して設定する方法の他の例については、uitree を参照してください。

ノード

すべて展開する

オンにされたノード。TreeNode オブジェクトまたは TreeNode オブジェクトの配列として指定します。チェック ボックス ツリー内でオンにされたノードをプログラムで取得または設定するには、このプロパティを使用します。

CheckedNodes に親ノードが含まれている場合は、親ノードのすべての子が CheckedNodes に自動的に追加されます。CheckedNodes に親ノードのすべての子が含まれている場合は、親ノードが CheckedNodes に自動的に追加されます。

選択されたノード。TreeNode オブジェクトとして指定します。チェック ボックス ツリー内で選択されたノードを取得または設定するには、このプロパティを使用します。

チェック ボックス ツリー UI コンポーネントで選択されたノードは、青で強調表示されて示されます。

フォントと色

すべて展開する

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

指定したフォントが利用できない場合、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 250 350];
t = uitree(fig,'checkbox');
n1 = uitreenode(t,'Text','Fruits');
n11 = uitreenode(n1,'Text','Banana');
n12 = uitreenode(n1,'Text','Cherry');
n2 = uitreenode(t,'Text','Vegetables');
n21 = uitreenode(n2,'Text','Broccoli');
n22 = uitreenode(n2,'Text','Lettuce');
expand(t)

s1 = uistyle('FontColor',[0 0.4 0.7]);    % Blue
s2 = uistyle('FontColor',[0.1 0.5 0.1]);  % Green

addStyle(t,s1,'level',2);
addStyle(t,s2,'node',[n2 n21 n22]);

A check box tree with nodes listing fruits and vegetables. The Banana and Cherry nodes are blue, and the Vegetables, Broccoli, and Lettuce nodes are green.

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

t.StyleConfigurations
ans =

  2×3 table

         Target     TargetIndex                Style          
         ______    ______________    _________________________

    1    level     {[         2]}    1×1 matlab.ui.style.Style
    2    node      {1×3 TreeNode}    1×1 matlab.ui.style.Style

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

removeStyle(t,2)

A check box tree with nodes listing fruits and vegetables. The Banana, Cherry, Broccoli, and Lettuce nodes are blue.

対話機能

すべて展開する

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

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

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

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

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

このプロパティを 'on' に設定すると、ユーザーは実行時にノード テキストを編集できるようになります。テキストを編集できるようにするには、Enable プロパティも 'on' に設定しなければなりません。

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

  • このプロパティを 'on' に設定すると、アプリ ユーザーはツリーとそのノードとやり取りすることができます。

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

このプロパティを 'off' に設定すると、ツリーとそのノードがグレー表示になり、ユーザーがツリーとそのノードを操作できないことが示されます。

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

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

位置

すべて展開する

位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。次の表で、ベクトルの各要素について説明します。すべての測定単位はピクセルです。

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

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

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

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

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

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

g = uigridlayout([4 3]);
cbt = uitree(g,'checkbox');
cbt.Layout.Row = 3;
cbt.Layout.Column = 2;

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

cbt.Layout.Column = [2 3];

コールバック

すべて展開する

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

  • 関数ハンドル。

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

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

このコールバック関数を使用して、ユーザーがツリー内のノードをオンまたはオフにしたときにコマンドを実行します。

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

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

プロパティ

説明

CheckedNodes

現在オンにされている TreeNode オブジェクト

PreviousCheckedNodes

前回オンにされた TreeNode オブジェクト

IndeterminateCheckedNodes

オンにされた子とオフにされた子を現在両方もっている親 TreeNode オブジェクト

PreviousIndeterminateCheckedNodes

オンにされた子とオフにされた子を以前両方もっていた親 TreeNode オブジェクト

LeafCheckedNodes

現在オンにされている、子ノードをもたない TreeNode オブジェクト

PreviousLeafCheckedNodes

前回オンにされた、子ノードをもたない TreeNode オブジェクト

ParentCheckedNodes

現在オンにされている、子ノードをもつ TreeNode オブジェクト

PreviousParentCheckedNodes

前回オンにされた、子ノードをもつ TreeNode オブジェクト

Source

コールバックを実行するコンポーネント

EventName

'CheckedNodesChanged'

ノードのリストを返すプロパティは、階層順に返します。たとえば、CheckedNodes プロパティはまず、ツリーの第 1 レベルでオンにされているすべてのノードを、ツリー コンポーネントに表示される順序でリストします。次に、ツリーの第 2 レベルでオンにされているすべてのノードを、今回も表示される順序でリストします。このパターンは、最終的にツリーの最終レベルのノードをリストするまで続行されます。これは、関数 findall がノードを返す順序と一致します。

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

選択変更コールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

このコールバック関数を使用して、ユーザーがツリー内で別のノードを選択したときにコマンドを実行します。

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

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

プロパティ

説明

SelectedNodes

最後に選択された TreeNode オブジェクト

PreviousSelectedNodes

前回選択された TreeNode オブジェクト

Source

コールバックを実行するコンポーネント

EventName

'SelectionChanged'

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

ノード展開コールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

このコールバック関数を使用して、ユーザーがツリー内のノードを展開したときにコマンドを実行します。

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

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

プロパティ

説明

Node

ユーザーが展開した TreeNode オブジェクト

Source

コールバックを実行するコンポーネント

EventName

'NodeExpanded'

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

ノード折り畳みコールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

このコールバック関数を使用して、ユーザーがツリー内のノードを折りたたんだときにコマンドを実行します。

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

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

プロパティ

説明

Node

ユーザーが折りたたんだ TreeNode オブジェクト

Source

コールバックを実行するコンポーネント

EventName

'NodeCollapsed'

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

ノード テキスト変更コールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

このコールバック関数を使用して、ユーザーがツリー内のノードのテキストを変更したときにコマンドを実行します。

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

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

プロパティ

説明

Node

テキストを変更した TreeNode オブジェクト

Text

新しいノード テキスト

PreviousText

以前のノード テキスト

Source

コールバックを実行するコンポーネント

EventName

'NodeTextChanged'

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

クリックしたときの関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

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

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

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

プロパティ
InteractionInformation

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

  • Node

  • Level

  • ScreenLocation

  • Location

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

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

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

プロパティ
Node

クリックされたノード。TreeNode オブジェクトとして返されます。

ユーザーのクリックしたツリーの領域がノードに関連付けられていない場合、Node は空の配列になります。

Level

クリックされたノードのレベル。スカラーとして返されます。Tree オブジェクトを直接の親とするノードがレベル 1、レベル 1 のノードを親とするノードがレベル 2 となり、以下同様に続きます。

ユーザーのクリックしたツリーの領域がノードに関連付けられていない場合、Level は空の配列になります。

ScreenLocation

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

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

Location

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

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

コールバックの記述の詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。

例: ツリーがクリックされたときにダイアログ ボックスを開く

いくつかのツリー ノードをもつツリーを作成します。ユーザーがツリーをクリックしたときに実行される、chooseIcon という名前の ClickedFcn コールバック関数を指定します。関数 chooseIcon 内で次を行います。

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

  • ユーザーが (ノードに関連付けられていないツリー内の場所ではなく) ツリー ノードをクリックした場合、ユーザーがツリー ノード アイコンのイメージを選択するためのファイル選択ダイアログ ボックスを開きます。

  • ツリー ノード アイコンを更新して、選択されたイメージを表示します。

  • キーボードのフォーカスをツリーに戻します。

この例を試すには、次のコードを新しいスクリプトに保存して、実行します。ツリーのノードをクリックし、アイコンのイメージ ファイルを選択します。

fig = uifigure;
t = uitree(fig,"checkbox");
n1 = uitreenode(t);
n2 = uitreenode(t);
n11 = uitreenode(n1);
n21 = uitreenode(n2);
t.ClickedFcn = @chooseIcon;
expand(t)

function chooseIcon(src,event)
node = event.InteractionInformation.Node;
if ~isempty(node)
    [file,path] = uigetfile("*.png");
    if ~isequal(file,0)
        node.Icon = fullfile(path,file);
    end
    focus(src)
end
end

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

  • 関数ハンドル。

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

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

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

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

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

プロパティ
InteractionInformation

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

  • Node

  • Level

  • ScreenLocation

  • Location

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

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

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

プロパティ
Node

ダブルクリックされたノード。TreeNode オブジェクトとして返されます。

ユーザーのダブルクリックしたツリーの領域がノードに関連付けられていない場合、Node は空の配列になります。

Level

ダブルクリックされたノードのレベル。スカラーとして返されます。Tree オブジェクトを直接の親とするノードがレベル 1、レベル 1 のノードを親とするノードがレベル 2 となり、以下同様に続きます。

ユーザーのダブルクリックしたツリーの領域がノードに関連付けられていない場合、Level は空の配列になります。

ScreenLocation

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

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

Location

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

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

コールバックの記述の詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。

例: ツリーがダブルクリックされたときにダイアログ ボックスを開く

いくつかのツリー ノードをもつツリーを作成します。ユーザーがツリーをダブルクリックしたときに実行される、chooseIcon という名前の DoubleClickedFcn コールバック関数を指定します。関数 chooseIcon 内で次を行います。

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

  • ユーザーが (ノードに関連付けられていないツリー内の場所ではなく) ツリー ノードをダブルクリックした場合、ユーザーがツリー ノード アイコンのイメージを選択するためのファイル選択ダイアログ ボックスを開きます。

  • ツリー ノード アイコンを更新して、選択されたイメージを表示します。

  • キーボードのフォーカスをツリーに戻します。

この例を試すには、次のコードを新しいスクリプトに保存して、実行します。ツリーのノードをダブルクリックし、アイコンのイメージ ファイルを選択します。

fig = uifigure;
t = uitree(fig,"checkbox");
n1 = uitreenode(t);
n2 = uitreenode(t);
n11 = uitreenode(n1);
n21 = uitreenode(n2);
t.DoubleClickedFcn = @chooseIcon;
expand(t)

function chooseIcon(src,event)
node = event.InteractionInformation.Node;
if ~isempty(node)
    [file,path] = uigetfile("*.png");
    if ~isequal(file,0)
        node.Icon = fullfile(path,file);
    end
    focus(src)
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 オブジェクトを作成します。

子。TreeNode オブジェクトの配列として返されます。

Children プロパティを使用して子の追加や削除を行うことはできませんが、このプロパティを使用して子のリストを表示することはできます。子の順序には、画面上に表示されている子ノードの順序が反映されています。このリストに子を追加するには、子コンポーネントの Parent プロパティをこの Tree オブジェクトに設定します。

子を並べ替えるには、関数 move を使用します。

HandleVisibility プロパティが 'off' に設定されているオブジェクトは Children プロパティにリストされません。

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

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

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

識別子

すべて展開する

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

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

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

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

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

バージョン履歴

R2021a で導入

参考

関数

ツール