Main Content

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

uitreenode

ツリー ノード コンポーネントの作成

説明

node = uitreenode は新しい Figure ウィンドウ内にあるツリーの内部でツリー ノード UI コンポーネントを作成し、TreeNode オブジェクトを返します。MATLAB® は関数 uifigure を呼び出して Figure を作成します。

node = uitreenode(parent) は、指定した親コンテナーにツリー ノードを作成します。親コンテナーは Tree または TreeNode オブジェクトです。

node = uitreenode(parent,sibling) は、指定した親コンテナーに、指定した兄弟ノードの後にツリー ノードを作成します。

node = uitreenode(parent,sibling,location) は、ツリー ノードを作成し、兄弟ノードの後または前に配置します。location'after' または 'before' として指定します。

node = uitreenode(___,Name,Value) は 1 つ以上の Name,Value のペアの引数を使用して、TreeNode のプロパティ値を指定します。前述の構文のいずれかを使用する場合に、Name,Value を引数の最後の組として指定します。

すべて折りたたむ

[Sample Data] という名前のノードを 1 つ含むツリーを作成します。

t = uitree('Position',[20 20 150 150]);
node = uitreenode(t,'Text','Sample Data');

ツリー、入れ子にされたツリー ノードのセット、およびツリーのコールバック関数を作成するための次のコマンドを含む mytreeapp.m というプログラム ファイルを作成します。SelectionChangedFcn プロパティは、ユーザーがツリーのノードをクリックしたときに実行する関数を指定します。

function mytreeapp
    f = uifigure;
    t = uitree(f,'Position',[20 20 150 150]);

    % Assign Tree callback in response to node selection
    t.SelectionChangedFcn = @nodechange;

    % First level nodes
    category1 = uitreenode(t,'Text','Runners','NodeData',[]);
    category2 = uitreenode(t,'Text','Cyclists','NodeData',[]);

    % Second level nodes.
    % Node data is age (y), height (m), weight (kg)
    p1 = uitreenode(category1,'Text','Joe','NodeData',[40 1.67 58] );
    p2 = uitreenode(category1,'Text','Linda','NodeData',[49 1.83 90]);
    p3 = uitreenode(category2,'Text','Rajeev','NodeData',[25 1.47 53]);
    p4 = uitreenode(category2,'Text','Anne','NodeData',[88 1.92 100]);

    % Expand the tree
    expand(t);
    
    function nodechange(src,event)
        node = event.SelectedNodes;
        display(node.NodeData);
    end
end

ユーザーが mytreeapp を実行してツリーのノードをクリックすると、MATLAB はそのノードの NodeData を表示します。

ツリー コンポーネントに適したアクションのコンテキスト メニューを作成します。コンテキスト メニューをツリー内の最上位のツリー ノードに割り当てます。

UI figure で、4 つの最上位のノードと入れ子ノードのセットを含むツリーを作成します。

fig = uifigure;

tree = uitree(fig,'Position',[20 200 175 100]);

category1 = uitreenode(tree,'Text','Runners');
r1 = uitreenode(category1,'Text','Joe');
r2 = uitreenode(category1,'Text','Linda');

category2 = uitreenode(tree,'Text','Cyclists');
c1 = uitreenode(category2,'Text','Rajeev');

category3 = uitreenode(tree,'Text','Hikers');
h1 = uitreenode(category3,'Text','Jack');

category4 = uitreenode(tree,'Text','Swimmers');
s1 = uitreenode(category4,'Text','Logan');

3 つのメニュー項目を含むコンテキスト メニューを作成します。最後のメニュー項目には、4 つのサブメニューを作成します。

cm = uicontextmenu(fig);
m1 = uimenu(cm,'Text','Expand All');
m2 = uimenu(cm,'Text','Collapse All');
m3 = uimenu(cm,'Text','Scroll To...');

sbm1 = uimenu(m3,'Text','Runners');
sbm2 = uimenu(m3,'Text','Cyclists');
sbm3 = uimenu(m3,'Text','Hikers');
sbm4 = uimenu(m3,'Text','Swimmers');

次に、各ノードの ContextMenu プロパティを ContextMenu オブジェクトに設定し、コンテキスト メニューを最上位のツリー ノードに割り当てます。

category1.ContextMenu = cm;
category2.ContextMenu = cm;
category3.ContextMenu = cm;
category4.ContextMenu = cm;

任意の最上位のツリー ノードを右クリックし、コンテキスト メニューを表示します。

この時点で、コードはまだ終了していません。右クリックするとコンテキスト メニューが表示されますが、メニュー項目を選択しても何も効果はありません。メニュー項目の動作の実装を完了するには、コールバック関数 MenuSelectedFcn を作成します。

入力引数

すべて折りたたむ

親オブジェクト。Tree または TreeNode オブジェクトとして指定します。

兄弟ノード。TreeNode オブジェクトとして指定します。

兄弟ノードを基準とするノードの相対位置。'after' または 'before' として指定します。

名前と値のペアの引数

例: node = uitreenode(t,'Text','Measurements') は、'Measurements' というラベルをもつツリー ノードを作成します。

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は一重引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を指定できます。

ここでは、プロパティの一部を紹介しています。完全な一覧については、TreeNode のプロパティ を参照してください。

ノード テキスト。文字ベクトルまたは string スカラーとして指定します。

アイコンのソースまたはファイル。文字ベクトル、string スカラー、または m x n x 3 のトゥルーカラー イメージ配列として指定します。ファイル名には、MATLAB パス上のイメージ ファイル名、あるいはイメージ ファイルへの絶対パスを指定できます。他のユーザーとアプリを共有する予定の場合は、アプリのパッケージ化を容易にするためにイメージ ファイルを MATLAB パス上に配置します。

サポートされているイメージ形式には、JPEG、PNG、GIF、SVG または m x n x 3 のトゥルーカラー イメージ配列が含まれます。トゥルーカラー イメージ配列の詳細については、イメージの種類を参照してください。

例: 'icon.png' は、MATLAB パス上のアイコン ファイルを指定します。

例: 'C:\Documents\icon.png' は、イメージ ファイルへの絶対パスを指定します。

ノードのデータ。任意の型の配列として指定します。ノードに関連するデータをアプリ コード内で共有するには、NodeData を指定します。

R2017b で導入