テーブル UI コンポーネントのセルのスタイル設定
アプリでテーブル データを表示する場合、関数 uistyle
および関数 addStyle
を使用して、テーブル UI コンポーネントの個々のセル、行、および列にスタイルを設定できます。スタイルを使用して、背景色の変更、アイコンの表示、方程式の書式設定、テーブル セルへのクリック可能なリンクの設定を行います。この例では、スタイルを使用してサンプルの津波データをテーブルに表示する方法を説明します。
テーブル UI コンポーネントの作成
津波データをファイルから読み取ってから、データのサブセットを抽出して表示します。
T = readtable("tsunamis.xlsx"); T = T(1:20,["Year" "Validity" "MaxHeight" "Intensity"]);
そのデータをテーブル UI コンポーネントに表示します。
fig = uifigure; tbl = uitable(fig,"Position",[10 10 540 400],"Data",T);
テーブル行の背景色の変更
最大の津波を表すテーブルの行の背景色を赤に設定することで、その行を目立たせます。
まず、最大高さが 10 メートルを超える津波を表す行を見つけます。
rows = find(tbl.Data.MaxHeight > 10);
次に、赤の背景色をもつスタイルを作成し、該当する行にそのスタイルを追加します。
s1 = uistyle("BackgroundColor","#F48B74"); addStyle(tbl,s1,"row",rows)
テーブル セルでのアイコンの表示
次に、津波の妥当性に疑問の余地がある、または非常に疑いがあることを示す警告アイコンをテーブル セルに追加します。
疑問の余地がある、または疑いがある津波をもつ行を見つけます。妥当性を指定するセルはすべてテーブルの 2 列目にあるため、値 2 のみを含むベクトルを水平方向に連結して、セルの行と列のインデックスを含む配列を作成します。
warningRows = find(strcmp(tbl.Data.Validity,'questionable tsunami') | ... strcmp(tbl.Data.Validity,'very doubtful tsunami')); warningColumns = repmat(2,size(warningRows)); cells = [warningRows warningColumns];
最後に、テキストの右側に警告アイコンを指定してセルのスタイルを設定します。
s2 = uistyle("Icon","warning","IconAlignment","right"); addStyle(tbl,s2,"cell",cells)
テーブル列の方程式とシンボルの書式設定
テーブルの Intensity
列に TeX マークアップを追加します。
まず、強度データのない行を特定します。次に、Intensity
列の値を文字列に変換し、データがないセルには ⊘ シンボルを表示するように指定します。データのあるセルには、データの先頭に "M_L = "
という文字列を付けて、値がリヒター マグニチュードであることを示します。
nanData = isnan(tbl.Data.Intensity); tbl.Data.Intensity = string(tbl.Data.Intensity); tbl.Data.Intensity(nanData) = "\oslash"; tbl.Data.Intensity(~nanData) = "M_L = " + tbl.Data.Intensity(~nanData);
Interpreter
プロパティを "tex"
に設定して、TeX マークアップを使用するように列のセルのスタイルを設定します。さらに、HorizontalAlignment
プロパティを "right"
に設定して、テキストを列のセルの右側に揃えます。
s3 = uistyle("Interpreter","tex","HorizontalAlignment","right"); addStyle(tbl,s3,"column","Intensity")
スタイルの削除
テーブル UI コンポーネントの StyleConfigurations
プロパティをクエリして、テーブルのスタイルを調べます。スタイルは、テーブルに適用した順に一覧表示されます。
tbl.StyleConfigurations
ans = 3×3 table Target TargetIndex Style ______ _____________ _________________________ 1 row {[ 7 13 16]} 1×1 matlab.ui.style.Style 2 cell {6×2 double } 1×1 matlab.ui.style.Style 3 column {'Intensity'} 1×1 matlab.ui.style.Style
テーブルから最初のスタイルを削除します。
removeStyle(tbl,1)
参考
関数
uitable
|uistyle
|addStyle
|removeStyle
|uifigure