メインコンテンツ

Button

ボタン UI コンポーネント

  • Button UI component

説明

ボタン UI コンポーネントは、アプリ ユーザーがボタンを押したときに反応します。Button オブジェクトを使用して、ボタンの作成後にボタンの外観と動作を変更します。

作成

uibutton 関数を使用してアプリでボタンを作成します。

プロパティ

すべて展開する

ボタン

ボタン ラベル。文字ベクトル、文字ベクトルの cell 配列、string スカラー、string 配列、または 1 次元の categorical 配列として指定します。ボタンに 1 行のテキストのラベルを付ける場合は文字ベクトルまたは string スカラーを指定します。ボタンに複数行のテキストのラベルを付ける場合は cell 配列または string 配列を使用します。配列の各要素は、テキストの各行を表します。このプロパティを categorical 配列として指定した場合、MATLAB® はカテゴリの完全なセットではなく、配列内の値を使用します。

ボタン テキスト インタープリター。次のいずれかとして指定します。

  • 'none' — リテラル文字を表示します。

  • 'tex' — TeX マークアップのサブセットを使用してテキストを解釈します。

  • 'latex' — LaTeX マークアップのサブセットを使用してテキストを解釈します。

  • 'html' — HTML マークアップのサブセットを使用してテキストを解釈します。

TeX マークアップ

TeX マークアップを使用して、上付き文字や下付き文字の追加、テキストへの特殊文字の挿入を行うことができます。

修飾子の効果はテキストの末尾まで適用されます。上付き文字と下付き文字は例外であり、次の 1 文字または中かっこで囲まれた文字にのみ適用されます。インタープリターを "tex" に設定した場合にサポートされる修飾子は次のとおりです。

修飾子説明
^{ }上付き文字"text^{superscript}"
_{ }下付き文字"text_{subscript}"
\bf太字フォント"\bf text"
\itイタリック フォント"\it text"
\sl斜体フォント (通常はイタリック フォントと同じ)"\sl text"
\rm標準フォント"\rm text"
\fontname{specifier}フォント名 — specifier をフォント ファミリの名前に置き換えます。これは他の修飾子と組み合わせて使用できます。"\fontname{Courier} text"
\fontsize{specifier}フォント サイズ — specifier をポイント単位の数値スカラーに置き換えます。"\fontsize{15} text"
\color{specifier}フォントの色 — specifier を、redgreenyellowmagentablueblackwhitegraydarkGreenorangelightBlue の色のいずれかに置き換えます。"\color{magenta} text"
\color[rgb]{specifier}フォントのカスタムの色 — specifier を RGB 3 成分に置き換えます。"\color[rgb]{0,0.5,0.5} text"

次の表に、"tex" インタープリターでサポートされる特殊文字を示します。

文字列記号文字列記号文字列記号

\alpha

α

\upsilon

υ

\sim

~

\angle

\phi

ϕ

\leq

\ast

*

\chi

χ

\infty

\beta

β

\psi

ψ

\clubsuit

\gamma

γ

\omega

ω

\diamondsuit

\delta

δ

\Gamma

Γ

\heartsuit

\epsilon

ϵ

\Delta

Δ

\spadesuit

\zeta

ζ

\Theta

Θ

\leftrightarrow

\eta

η

\Lambda

Λ

\leftarrow

\theta

θ

\Xi

Ξ

\Leftarrow

\vartheta

ϑ

\Pi

Π

\uparrow

\iota

ι

\Sigma

Σ

\rightarrow

\kappa

κ

\Upsilon

ϒ

\Rightarrow

\lambda

λ

\Phi

Φ

\downarrow

\mu

µ

\Psi

Ψ

\circ

º

\nu

ν

\Omega

Ω

\pm

±

\xi

ξ

\forall

\geq

\pi

π

\exists

\propto

\rho

ρ

\ni

\partial

\sigma

σ

\cong

\bullet

\varsigma

ς

\approx

\div

÷

\tau

τ

\Re

\neq

\equiv

\oplus

\aleph

\Im

\cup

\wp

\otimes

\subseteq

\oslash

\cap

\in

\supseteq

\supset

\lceil

\subset

\int

\cdot

·

\o

ο

\rfloor

\neg

¬

\nabla

\lfloor

\times

x

\ldots

...

\perp

\surd

\prime

´

\wedge

\varpi

ϖ

\0

\rceil

\rangle

\mid

|

\vee

\langle

\copyright

©

LaTeX マークアップ

LaTeX マークアップを使用するには、インタープリターを 'latex' に設定します。LaTeX マークアップを使用して、数式、方程式、特殊文字を書式設定して表示します。ドル記号を使用してマークアップ テキストを囲みます。たとえば、インライン モードでは '$\int_1^{20} x^2 dx$'、表示モードでは '$$\int_1^{20} x^2 dx$$' を使用します。

テキストは LaTeX の既定のフォント スタイルで表示され、FontNameFontWeightFontAngle のプロパティは無視されます。フォント スタイルを変更するには、LaTeX マークアップを使用します。

MATLAB では、大半の標準の LaTeX 数式モード コマンドがサポートされています。詳細については、サポートされる LaTeX コマンドを参照してください。

HTML マークアップ

HTML マークアップを使用するには、インタープリターを 'html' に設定します。HTML を使用したフォント スタイルの設定は、等価なフォント プロパティをオーバーライドします。たとえば、次のコードは赤のテキストをもつボタンを作成します。

fig = uifigure;
b = uibutton(fig,"Interpreter","html");
b.Text = '<p style="color: red;">Text</p>';
b.FontColor = "blue";

インタープリターは HTML マークアップのサブセットをサポートします。一般的なガイドラインとして、インタープリターはテキスト関連のタグとスタイルをサポートします。サポートされないタグとスタイルは無視されます。

次の表に、サポートされる要素と要素の属性を一覧します。

HTML 要素属性説明
astyle, target, href, titleハイパーリンク
abbrstyle, title略語または頭字語
addressstyle連絡先情報
articlestyle自己完結した単独のコンテンツ
asidestyle主な内容に間接的に関連するコンテンツ
bstyle太字フォント
bdistyle, dir周囲のテキストとは異なる方向で書式設定されるコンテンツ
bdostyle, dir周囲のテキストとは異なる方向で書式設定されるコンテンツ
bigstyle周囲のテキストよりフォント サイズが 1 レベル大きいテキスト (HTML5 では旧式)
blockquotestyle, cite拡張された引用
brN/A改行
captionstyleテーブルのキャプションまたはタイトル
centerstyle水平方向に中央揃えされたコンテンツ
citestyle参照先のタイトル
codestyleコードのフラグメント
colstyle, align, valign, span, widthテーブル内の列
colgroupstyle, align, valign, span, widthテーブル内の列のグループ
ddstyle説明リストの用語または値
delstyle, datetimeドキュメントから削除されたテキスト
detailsstyle, open'開いた' 状態に切り替えた場合にのみテキストが表示される対話型ウィジェット
dlstyle説明リスト
dtstyle説明リストの用語または値
emstyle強調表示されるテキスト (通常、イタリックで表示)
fontstyle, color, size, face指定したフォント プロパティのテキスト (HTML5 では旧式)
footerstyleフッター
h1. h2, h3, h4, h5, h6styleセクション見出し — <h1> が見出しの最上位、<h6> が最下位
headerstyle導入コンテンツ
hrstyle主題の区切り
istyle周囲のコンテンツからのテキスト オフセット — 既定の設定ではイタリックとしてレンダリングされる
insstyle, datetimeドキュメントに挿入されたテキスト
listyleリスト内の項目
markstyleマークアップ テキストまたは強調表示されたテキスト
olstyle順序付きリスト
pstyle段落
prestyle書式設定済みテキスト
sstyle取り消し線付きのテキスト
strikestyle取り消し線付きのテキスト (HTML5 では旧式)
sectionstyle独立したセクション
smallstyle周囲のテキストよりフォント サイズが 1 レベル小さいテキスト (HTML5 では旧式)
substyle下付き文字
supstyle上付き文字
strongstyle重要度が高いテキスト
tablestyle, width, border, align, valignテーブル
tbodystyle, align, valignテーブル本体
tdstyle, width, rowspan, colspan, align, valignテーブル データ セル
tfootstyle, align, valignテーブル列をまとめる一連のテーブル行
thstyle, width, rowspan, colspan, align, valignセルのグループのヘッダーとして指定されたテーブル データ セル
theadstyle, align, valign列見出しを指定する一連のテーブル行
trstyle, rowspan, align, valignテーブル セルの行
ttstyle固定幅テキスト (HTML5 では旧式)
ustyle非言語的注釈を使用するテキスト — 既定の設定では下線としてレンダリングされる
ulstyle順序なしリスト

これらの要素の詳細については、https://developer.mozilla.org/en-US/docs/Web/HTML/Elementを参照してください。

MATLAB コードを実行するハイパーリンクを作成するために HTML マークアップを使用するには、関数を実行するハイパーリンクの作成を参照してください。

HTML スタイル属性を使用して HTML コンテンツを書式設定できます。スタイル属性は CSS 属性とその値の文字列です。

以下の CSS 属性がサポートされています。

  • background-color

  • border-bottom

  • border-bottom-color

  • border-bottom-left-radius

  • border-bottom-right-radius

  • border-bottom-style

  • border-bottom-width

  • border-left

  • border-left-color

  • border-left-style

  • border-left-width

  • border-radius

  • border-right

  • border-right-color

  • border-right-style

  • border-right-width

  • border-spacing

  • border-style

  • border-top

  • border-top-color

  • border-top-left-radius

  • border-top-right-radius

  • border-top-style

  • border-top-width

  • border-width

  • color

  • direction

  • font-family

  • font-size

  • font-style

  • font-weight

  • height

  • hidden

  • line-height

  • margin

  • margin-bottom

  • margin-left

  • margin-right

  • margin-top

  • max-height

  • max-width

  • min-height

  • min-width

  • overflow

  • overflow-wrap

  • overflow-x

  • overflow-y

  • padding

  • padding-bottom

  • padding-left

  • padding-right

  • padding-top

  • text-align

  • text-anchor

  • text-decoration

  • text-indent

  • text-overflow

  • text-shadow

  • text-transform

  • title

  • translate

  • white-space

  • width

これらの属性の詳細については、https://developer.mozilla.org/en-US/docs/Web/CSS/Referenceを参照してください。

コンポーネントの幅に合わせるための右端での折り返し。'off' または 'on'、もしくは数値または logical 0 (false) または 1 (true) として指定します。'off' の値は false と等価であり、'on' の値は true と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

このプロパティを使用して、表示するテキストよりコンポーネントの幅が小さい場合に水平方向に切り捨てられないようにします。

  • 'off' — テキストは右端で折り返しされません。

  • 'on' — テキストを新しい行に折り返して、各行がコンポーネントの幅に収まるようにし、単語が区切られないようにします (可能な場合)。

WordWrap プロパティを 'on' に設定しても、コンポーネントの高さがテキストのすべての行を表示するには小さすぎる場合には、テキストが垂直方向に切り捨てられるのを回避できません。

事前定義されているアイコンまたはカスタム アイコン。文字ベクトル、string スカラー、または m×n×3 のトゥルーカラー イメージ配列として指定します。

事前定義されているアイコン

次の表に、事前定義されているアイコンを指定するための値を一覧します。

アイコン
'' (既定)アイコンは表示されません。
'question'

Question icon

'info'

Info icon

'success'

Success icon

'warning'

Warning icon

'error'

Error icon

カスタム アイコン

カスタム アイコンを次の値のいずれかとして指定します。

  • MATLAB パス上にある SVG、JPEG、GIF または PNG イメージのファイル名を指定する文字ベクトルまたは string スカラー。あるいは、イメージ ファイルの絶対パスを指定することもできます。

  • m×n×3 のトゥルーカラー イメージ配列。詳細については、MATLAB でのイメージ タイプの処理を参照してください。

他のユーザーとアプリを共有する予定の場合は、アプリのパッケージ化を容易にするためにイメージ ファイルを MATLAB パス上に配置します。

Position プロパティ値で指定されたすべての領域をボタンのテキストが占有する場合、MATLAB はアイコンを表示しません。アイコンに利用可能な領域がいくらかある場合、MATLAB は必要に応じて、その領域に収まるようにイメージを縮小します。

フォントと色

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

指定したフォントが利用できない場合、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

次の表に、ライト テーマとダーク テーマでのプロットの既定のカラー パレットを示します。

パレットパレットの色

"gem" — ライト テーマの既定値

R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。

Sample of the "gem" color palette

"glow" — ダーク テーマの既定値

Sample of the "glow" color palette

orderedcolors 関数と rgb2hex 関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して、RGB 3 成分を取得します。

R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255)) を使用して、16 進数カラー コードを取得します。

背景色。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

次の表に、ライト テーマとダーク テーマでのプロットの既定のカラー パレットを示します。

パレットパレットの色

"gem" — ライト テーマの既定値

R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。

Sample of the "gem" color palette

"glow" — ダーク テーマの既定値

Sample of the "glow" color palette

orderedcolors 関数と rgb2hex 関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して、RGB 3 成分を取得します。

R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255)) を使用して、16 進数カラー コードを取得します。

対話機能

可視性の状態。'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' に設定すると、アプリ ユーザーはコンポーネントを操作できるようになります。

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

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

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

位置

ボタンの位置とサイズ。形式 [left bottom width height] のベクトルとして指定します。次の表で、ベクトルの各要素について説明します。

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

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

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

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

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

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

アイコンとテキストの水平方向の配置。'center''left'、または 'right' として指定します。水平方向の配置は、ボタンの境界線の内側にある領域を基準とします。テキストがボタンの幅全体にわたる場合にこのプロパティを設定しても、UI 上の見た目に変化はありません。

アイコンとテキストの垂直方向の配置。'center''top'、または 'bottom' として指定します。垂直方向の配置は、ボタンの境界線の内側にある領域を基準とします。テキストの高さがボタンの高さ全体にわたる場合にこのプロパティを設定しても、UI ではあまり効果はありません。

ボタン アイコンの場所。次の表内の値のいずれかとして指定します。この表の例は、HorizontalAlignment 値を 'center' に指定したボタンの各 IconAlignment 値を指定した結果を示しています。

説明
'left'アイコンは、ボタン テキストのすぐ左に表示されます。

Button with centered text and a green check mark icon directly to the left of the text

'right'アイコンは、ボタン テキストのすぐ右に表示されます。

Button with centered text and a green check mark icon directly to the right of the text

'center'アイコンは、ボタンの中央、テキストの背後に表示されます。

Button with centered text and a green check mark icon centered behind the text

'leftmargin'

アイコンは、テキストの位置に関係なく、ボタンの左端に表示されます。

この値は、HorizontalAlignment の値が 'left' のときは 'left' と等価です。

Button with centered text and a green check mark icon on the far left side of the button

'rightmargin'

アイコンは、テキストの位置に関係なく、ボタンの右端に表示されます。

この値は、HorizontalAlignment の値が 'right' のときは 'right' と等価です。

Button with centered text and a green check mark icon on the far right side of the button

'top'アイコンは、ボタン テキストのすぐ上に表示されます。

Button with centered text and a green check mark icon directly above the text

'bottom'アイコンは、ボタン テキストのすぐ下に表示されます。

Button with centered text and a green check mark icon directly below the text

ボタンの Text プロパティが空の場合、アイコンの場所は、IconAlignment プロパティではなく、HorizontalAlignment プロパティと VerticalAlignment プロパティによって決まります。

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

たとえば、次のコードはボタンを親グリッドの 3 行目の 2 列目に配置します。

g = uigridlayout([4 3]);
b = uibutton(g);
b.Layout.Row = 3;
b.Layout.Column = 2;

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

b.Layout.Column = [2 3];

コールバック

ボタン プッシュ コールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

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

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

このコールバックは、ユーザーがアプリでボタンをクリックしたときに実行されます。

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

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

プロパティ
EventName'ButtonPushed'
Sourceコールバックを実行するコンポーネント

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

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

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである 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 プロパティの値をチェックします。

親/子

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

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

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

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

識別子

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

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

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

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

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

オブジェクト関数

focusUI コンポーネントにフォーカスを移動

すべて折りたたむ

アプリ ユーザーがボタンを押したときにデータをプロットするアプリを作成します。

plotApp.m という名前のファイルで、アプリを実装する関数を作成します。

  • UI Figure およびグリッド レイアウト マネージャーを作成してアプリをレイアウトします。

  • グリッド レイアウト マネージャーで UI 座標軸とボタンを作成します。

  • UI 座標軸にデータをプロットする plotButtonPushed という名前のコールバック関数を作成し、その関数を ButtonPushedFcn コールバック プロパティに割り当てます。コールバックの詳細については、プログラムで作成したアプリ用のコールバックの作成を参照してください。

function plotApp
fig = uifigure;
g = uigridlayout(fig,[2 3]);
g.RowHeight = {'1x','fit'};
g.ColumnWidth = {'1x','fit','1x'};


ax = uiaxes(g);
ax.Layout.Row = 1;
ax.Layout.Column = [1 3];
b = uibutton(g, ...
    "Text","Plot Data", ...
    "ButtonPushedFcn", @(src,event) plotButtonPushed(ax));
b.Layout.Row = 2;
b.Layout.Column = 2;
end

function plotButtonPushed(ax)
x = linspace(0,2*pi,100);
y = sin(x);
plot(ax,x,y)
end

関数 plotApp を実行します。ボタンをクリックしてデータをプロットします。

UI figure window with axes showing some plotted data and a Plot Data button below the axes

バージョン履歴

R2016a で導入

すべて展開する

参考

関数

ツール