このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
uitreenode
ツリー ノード コンポーネントの作成
構文
説明
は新しい Figure ウィンドウ内にあるツリーの内部でツリー ノード UI コンポーネントを作成し、node
= uitreenodeTreeNode
オブジェクトを返します。MATLAB® は関数 uifigure
を呼び出して Figure を作成します。
は、指定した親コンテナーにツリー ノードを作成します。親コンテナーは node
= uitreenode(parent
)Tree
または TreeNode
オブジェクトです。
は 1 つ以上の node
= uitreenode(___,Name,Value
)Name,Value
のペアの引数を使用して、TreeNode
のプロパティ値を指定します。前述の構文のいずれかを使用する場合に、Name,Value
を引数の最後の組として指定します。
例
Sample Data
という名前の親ノードを Sample 1
という名前の子ノードと共に含むツリーを作成します。ツリーを展開すると、両方のノードが表示されます。
fig = uifigure; t = uitree(fig); parent = uitreenode(t,"Text","Sample Data"); child = uitreenode(parent,"Text","Sample 1"); expand(t)
親ノードと子ノードをもつツリーを作成します。ツリーを展開すると、両方のノードが表示されます。
fig = uifigure; t = uitree; p = uitreenode(t,"Text","Teas"); c1 = uitreenode(p,"Text","Green Tea"); expand(t);
新しい子ノードをツリーの c1
ノードの上に追加します。
c2 = uitreenode(p,c1,"before","Text","Oolong Tea");
スポーツ別にグループ分けされたアスリート名を表示するアプリを作成します。アプリ ユーザーが名前をクリックすると、MATLAB はそのアスリートに関するデータを表示します。
ツリー、入れ子にされたツリー ノードのセット、およびツリーのコールバック関数を作成するための次のコマンドを含む mytreeapp.m
というプログラム ファイルを作成します。SelectionChangedFcn
プロパティは、ユーザーがツリーのノードをクリックしたときに実行する関数を指定します。
function mytreeapp fig = uifigure; t = uitree(fig,"Position",[20 20 150 150]); % Assign 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); % Create the function for the SelectionChangedFcn callback % When the function is executed, it displays the data of the selected item function nodechange(src,event) node = event.SelectedNodes; display(node.NodeData); end end
ユーザーが mytreeapp
を実行してツリーのノードをクリックすると、MATLAB はそのノードの NodeData
を表示します。
異なるファイル タイプを視覚的に区別できるように、ファイル構造を展示するツリー中のノードのスタイルを決定します。
ツリー UI コンポーネントを作成します。各最上位ノードはフォルダーを表します。各子ノードはそのフォルダー中のファイルを表します。ツリーを展開すると、すべてのノードが表示されます。
fig = uifigure("Position",[300 300 350 400]); t = uitree(fig); % Parent nodes n1 = uitreenode(t,"Text","App 1"); n2 = uitreenode(t,"Text","App 2"); n3 = uitreenode(t,"Text","Images"); % Child nodes n11 = uitreenode(n1,"Text","myapp1.m"); n21 = uitreenode(n2,"Text","myapp2.m"); n22 = uitreenode(n2,"Text","app2callback.m"); n31 = uitreenode(n3,"Text","peppers.png"); expand(t)
3 つのスタイルを作成します。1 つはフォントの太さが太字、1 つはフォントの角度がイタリック、1 つはアイコンです。
dirStyle = uistyle("FontWeight","bold"); mStyle = uistyle("FontAngle","italic"); imgStyle = uistyle("Icon","peppers.png");
太字のスタイルを最上位ノードに適用して、フォルダーを表すノードを区別します。イタリックのスタイルを App 1
ノードおよび App 2
ノードの子に適用して、MATLAB プログラム ファイルを表すノードを区別します。最後に、イメージ ファイルを表すノードにアイコンのスタイルを適用し、イメージのプレビューを表示します。
addStyle(t,dirStyle,"level",1) addStyle(t,mStyle,"node",[n1.Children;n2.Children]) addStyle(t,imgStyle,"node",n31)
table のデータに基づいてノードを追加するツリーを作成します。
UI コンポーネントを保持するグリッド レイアウト マネージャーをもつ Figure を作成します。電力会社の停電に関するサンプル データを読み込み、データを表示するテーブル UI コンポーネントを作成します。次にツリーを作成して、停電した地域および原因をリストするノードを保持します。
fig = uifigure; gl = uigridlayout(fig,[1 2]); gl.ColumnWidth = {'2x','1x'}; T = readtable("outages.csv"); T = T(1:20,["Region","OutageTime","Loss","Cause"]); tbl = uitable(gl,"Data",T); tr = uitree(gl);
ツリーに表示する table 変数を指定します。これらの変数それぞれに対して、テキストが変数名である最上位ノードを作成します。変数に対する table エントリを categorical 配列に変換し、カテゴリのリストを names
として返すことにより、関連するデータを抽出します。次に、カテゴリをループします。各要素に対して、適切な親ノードの下でツリーにノードを追加します。
vars = ["Region","Cause"]; for k1 = 1:length(vars) var = vars{k1}; varnode = uitreenode(tr,"Text",var); rows = T{:,var}; names = categories(categorical(rows)); for k2 = 1:length(names) text = names{k2}; uitreenode(varnode,"Text",text); end end
ツリーを展開すると、すべてのノードが表示されます。
expand(tr)
ツリー コンポーネントのコンテキスト メニューを作成します。コンテキスト メニューをツリー内の最上位ノードすべてに割り当てます。
現在のフォルダー内の新規スクリプトに、UI figure を作成します。次に、4 つの最上位ノードと入れ子ノードのセットをもつツリーを作成します。
fig = uifigure; t = uitree(fig,"Position",[20 200 175 100]); category1 = uitreenode(t,"Text","Runners"); r1 = uitreenode(category1,"Text","Joe"); r2 = uitreenode(category1,"Text","Linda"); category2 = uitreenode(t,"Text","Cyclists"); c1 = uitreenode(category2,"Text","Rajeev"); category3 = uitreenode(t,"Text","Hikers"); h1 = uitreenode(category3,"Text","Jack"); category4 = uitreenode(t,"Text","Swimmers"); s1 = uitreenode(category4,"Text","Logan");
ユーザーがクリックして単一のツリー ノードまたはすべてのツリー ノードを展開できるメニュー項目を 1 つとサブメニューを 2 つ備えた、コンテキスト メニューを作成します。各サブメニューに対してコールバック関数 MenuSelectedFcn
を指定し、ユーザーがメニュー オプションを選択すると実行されるようにします。関連するアプリ オブジェクトを入力として各関数に渡し、コールバック関数内からアプリ データにアクセスします。
cm = uicontextmenu(fig); m1 = uimenu(cm,"Text","Expand..."); sbm1 = uimenu(m1,"Text","This Node", ... "MenuSelectedFcn",{@expandSingle,fig}); sbm2 = uimenu(m1,"Text","All Nodes", ... "MenuSelectedFcn",{@expandAll,t});
各ノードの ContextMenu
プロパティを ContextMenu
オブジェクトに設定することで、コンテキスト メニューを最上位のツリー ノードに割り当てます。
category1.ContextMenu = cm; category2.ContextMenu = cm; category3.ContextMenu = cm; category4.ContextMenu = cm;
ファイルの下部で、コールバック関数 expandSingle
および expandAll
を定義します。MATLAB がすべてのコールバック関数に渡すソースとイベント データを受け入れるように、関数を定義します。
関数 expandSingle
を定義して、ツリーを含む UI figure オブジェクトも受け入れるようにし、また、Figure の CurrentObject
プロパティを使用して、コンテキスト メニューを表示するためにクリックされたツリー ノードを特定するようにします。次に、ノードを展開します。
ツリー オブジェクトも受け入れるように関数 expandAll
を定義し、ツリー内のすべてのノードを展開します。
function expandSingle(src,event,f) node = f.CurrentObject; expand(node) end function expandAll(src,event,t) expand(t) end
スクリプトを保存して実行します。任意の最上位のツリー ノードを右クリックし、コンテキスト メニューを表示します。
入力引数
親オブジェクト。Tree
または TreeNode
オブジェクトとして指定します。
兄弟ノード。TreeNode
オブジェクトとして指定します。
兄弟を基準とするノードの相対位置。"after"
または "before"
として指定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: node = uitreenode(t,Text="Measurements")
は、"Measurements"
というラベルをもつツリー ノードを作成します。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: node = uitreenode(t,"Text","Measurements")
は、"Measurements"
というラベルをもつツリー ノードを作成します。
メモ
以下にリストするプロパティは、利用できるプロパティの一部です。完全な一覧については、TreeNode
を参照してください。
ノード テキスト。文字ベクトルまたは string スカラーとして指定します。
アイコンのソースまたはファイル。文字ベクトル、string スカラー、または m
×n
×3 のトゥルーカラー イメージ配列として指定します。ファイル名には、MATLAB パス上のイメージ ファイル名、あるいはイメージ ファイルへの絶対パスを指定できます。他のユーザーとアプリを共有する予定の場合は、アプリのパッケージ化を容易にするためにイメージ ファイルを MATLAB パス上に配置します。
サポートされているイメージ形式には、JPEG、PNG、GIF、SVG または m
×n
×3 のトゥルーカラー イメージ配列が含まれます。トゥルーカラー イメージ配列の詳細については、MATLAB でのイメージ タイプの処理を参照してください。
例: 'icon.png'
は、MATLAB パス上のアイコン ファイルを指定します。
例: 'C:\Documents\icon.png'
は、イメージ ファイルへの絶対パスを指定します。
ノードのデータ。任意の型の配列として指定します。ノードに関連するデータをアプリ コード内で共有するには、NodeData
を指定します。
バージョン履歴
R2017b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)