| MATLAB Function Reference | ![]() |
表示
handle = uicontrol(parent) handle = uicontrol(...,'PropertyName',PropertyValue,...)
詳細
uicontrol は、Uicontrolグラフィカルオブジェクト(user interface controls)を作成する関数です。Uicontrolを使って、グラフィカルユーザインタフェースを実行します。選択されると、Uicontrolオブジェクトは既定の動作を行います。MATLABは、種々のスタイルのUicontrolをサポートしており、それらの各々が異なる目的に対応します。
チェックボックス は、クリックしたときにある動作が行われます。このデバイスは、独立な選択を複数個、行うときに有効です。チェックボックスを動作させるためには、オブジェクトの上でマウスボタンを押します。デバイスの状態は、ディスプレイ上に示されます。
エディタブルテキストボックス は、ユーザが入力や編集ができるテキストを含むボックスです。テキストを入力として使いたいときにエディタブルテキストを使ってください。
Microsoft Windows システムでは、エディタブルテキストボックスが対象となっている場合、メニューバーをクリックすると、エディタブルテキストのコールバックルーチンは実行しません。しかし、UNIXシステムでは実行されます。そのため、(テキスト文字列がスクリーン上で変更されていても)Stringプロパティを更新するために、コールバックルーチンを実行しなければならないので、メニューバー上でクリックした後で、つぎのステートメント
get(edit_handle,'String')
は、Microsoft Windows システムでは、エディットボックスのカレントの内容を出力しません。これは、MATLAB が、(これは、スクリーン上でテキスト文字列が変更されたときでも)String プロパティを更新するコールバックルーチンを実行しなければならないからです。これは、対応するプラットフォームの使用法と整合性があります。
フレームは、Figureウインドウの領域を囲むボックスです。フレームは、関連するコントロールをグループ化してユーザインタフェースを理解しやすくします。フレームに関連するコールバックルーチンはありません。フレームには、Uicontrolのみが表示されます。
フレームは不透明なので、フレーム内のuicontrolがフレームによって隠されるか、または視角可能であるかどうかを指定する際には、Uicontrolの定義の順序が重要です。スタックの順番がオブジェクトの描画の順番を決定します。1番目に定義されたオブジェクトは、1番目に描画されます。その後、定義されたオブジェクトは、既存のオブジェクトの上に描画されます。オブジェクトを囲むためにフレームを使う場合は、オブジェクトを定義する前にフレームを定義しなければなりません。
リストボックスは、(String プロパティを使って定義した)文字列のリストを表示し、複数の項目を選択できるようにします。MinプロパティとMaxプロパティは、この選択のモードの制御を行います。Valueプロパティは、選択された要素を表わし、文字列のリストのインデックスを含んでいます。ベクトルの値は、複数の選択を表わします。MATLABは、Valueプロパティを変更するマウスのボタンアップイベントの後で、リストボックスのコールバックルーチンを実行します。従って、リストの項目上で複数回クリックすることが原因で起こる動作を遅らせるためには、"Done"ボタンを追加する必要があるかもしれません。リストボックスは、シングルクリックとダブルクリックを区別し、リストボックスのCallbackプロパティを評価する前に、FigureのSelectionTypeプロパティをnormal、または、openに設定します。
ポップアップメニューは、押したときに(String プロパティを使って定義した)選択可能な動作のリストを表示します。動作していないときは、カレントの設定を示すテキストで1つのボタンを表示します。ポップアップメニューは、相互に同時に選択できない複数の動作を表示し、ラジオボタンが必要とするほどのスペースを取りたくないときに有効です。Stringプロパティの値を指定しなければなりません。
プッシュボタン は、押したときに、ある動作が行われます。プッシュボタンがアクティブにするには、プッシュボタン上でマウスボタンをクリックしてください。
ラジオボタンは、チェックボックスに似ていますが、ラジオボタンのグループ内で相互に選択できない複数の動作を示します(すなわち、ある時点で、ボタンが押された状態にあるのは1つだけです)。ラジオボタンを動作させるときは、オブジェクト上でマウスボタンをクリックしてください。デバイスの状態は、ディスプレイ上に示されます。ユーザは、ラジオボタンの相互に選択できない動作を作成できることに注意してください。
em>スライダは、スライダバーを動かすことで、ある範囲内での数値入力を可能にします。ユーザはマウスボタンを押して、バー上でマウスをドラッグするか、バーの途中または矢印上をクリックしてバーを動かします。バーの位置は、マウスボタンの解除で選択される数値を表わします。スライダの最小値、最大値、カレント値を設定することができます。
スタティックテキストは、テキスト行を表示するボックスです。他のコントロールのグループにラベル付けをしたり、ユーザへの指示を表示したり、スライダの値を表示したりするのに使います。ユーザは、対話的にはスタティックテキストを変更できません。スタティックテキストに関するコールバックルーチンを実行することはできません。
切り替えボタンは、クリックされたときにコールバックを実行し、それらの状態がonまたはoffであることを示します。トグルボタンは、ツールバーの構築に役立ちます。
注意
関数 uicontrolは、入力引数を、プロパティ名とプロパティ値の組合わせ、構造体、セル配列で指定でき、作成したオブジェクトのハンドル番号をオプションとして出力します。オブジェクトを作成した後で、set とgetを使って、プロパティ値の設定や確認ができます。
Uicontrolオブジェクトは、Figureオブジェクトの子オブジェクトで、Figureウィンドウ内にあるときはAxesを必要としません。
プロパティ
つぎの表は、uicontrolのプロパティをまとめたものです。プロパティ名は、詳細な説明にリンクされています。
| プロパティ名 |
プロパティの詳細 |
プロパティ値 |
| スタイルと外観の制御 | ||
BackgroundColor |
オブジェクトのバックグラウドカラー |
値: ColorSpecデフォルト: システムに依存 |
CData |
コントロール上に表示されるトォルーカラーイメージ |
値: 行列 |
ForegroundColor |
テキストのカラー |
値: ColorSpecデフォルト: [0 0 0] |
SelectionHighlight |
選択したときに、強調されるオブジェクト |
値: on, offデフォルト: on |
String |
Uicontrol ラベルで、リストボックスとポップアップメニューも含む |
値: 文字列 |
Visible |
Uicontrol の可視化 |
値: on, offデフォルト: on |
| オブジェクトに関する一般的情報 | ||
Children |
Uicontrolオブジェクトは、子オブジェクトをもちません |
|
Enable |
Uicontrolを使用可能または不可能にする |
値: on, inactive, offデフォルト: on |
Parent |
Uicontrol オブジェクトの親 |
値: スカラのフィギュアハンドル番号 |
Selected |
オブジェクトが選択されているか否か |
値: on, offデフォルト: off |
SliderStep |
スライダのステップサイズ |
値: 2要素ベクトル デフォルト: [0.01 0.1] |
Style |
uicontrol オブジェクトのタイプ |
値: pushbutton, togglebutton, radiobutton, checkbox, edit, text, slider, frame, listbox, popupmenuデフォルト: pushbutton |
Tag |
ユーザ指定のオブジェクト識別子 |
値: 文字列 |
TooltipString |
オブジェクトのツールチップの内容 |
値: 文字列 |
Type |
グラフィックオブジェクトのクラス |
値: 文字列 (参照のむ) デフォルト: uicontrol |
UserData |
ユーザ指定のデータ |
値: 行列 |
| オブジェクトの位置の制御 | ||
Position |
Uicontrolオブジェクトのサイズと位置 |
値: 位置を表わす長方形 デフォルト: [20 20 60 20] |
Units |
position ベクトルの単位 |
値: pixels, normalized, inches, centimeters, points, charactersデフォルト: pixels |
| フォントとラベルの制御 | ||
FontAngle |
キャラクタの傾斜 |
値: normal, italic, obliqueデフォルト: normal |
FontName |
フォントファミリ |
値: 文字列 デフォルト: システムに依存 |
FontSize |
フォントサイズ |
値: FontUnits でのサイズデフォルト: システムに依存 |
FontUnits |
フォントサイズの単位 |
値: points, normalized, inches, centimeters, pixelsデフォルト: points |
FontWeight |
テキストキャラクタの太さ |
値: light, normal, demi, boldデフォルト: normal |
HorizontalAlignment |
ラベル文字列の位置の調整 |
値: left, center, rightデフォルト: uicontrol オブジェクトに依存 |
String |
Uicontrolオブジェクトのラベルとリストボックスとポップアップメニューアイテムのラベル |
値: 文字列 |
| コールバックルーチンの実行の制御 | ||
BusyAction |
コールバックルーチンの割り込み |
値: cancel, queueデフォルト: queue |
ButtonDownFcn |
ボタンを押したときに実行するコールバックルーチン |
値: 文字列 |
Callback |
コントロール動作 |
値: 文字列 |
CreateFcn |
オブジェクトの作成時に実行されるコールバックルーチン |
値: 文字列 |
DeleteFcn |
オブジェクトの削除時に実行されるコールバックルーチン |
値: 文字列 |
Interruptible |
コールバックルーチンの割り込みモード |
値: on, offデフォルト: on |
UIContextMenu |
Uicontrolと関連するUicontextmenuオブジェクト |
値: ハンドル |
| カレントの状態に関する情報 | ||
ListboxTop |
リストボックスの一番植えの文字列のインデックス |
値: スカラ デフォルト: [1] |
Max |
最大値(Uicontrolオブジェクトにより異なる) |
値: スカラ デフォルト: オブジェクトに依存 |
Min |
最小値(Uicontrolオブジェクトにより異なる) |
値: スカラ デフォルト: オブジェクトに依存 |
Value |
uicontrol オブジェクトのカレント値 |
値: スカラ、または、ベクトル デフォルト: オブジェクトに依存 |
| オブジェクトへのアクセスの制御 | ||
HandleVisibility |
コマンドラインやGUIからハンドルがアクセス可能であるかどうか |
値: on, callback, off デフォルト: on |
HitTest |
マウスクリックにより選択可能かどうか |
値: on, off デフォルト: on |
例題
つぎのステートメントは、ボタンを押すとカレントの軸を消去するプッシュボタンを作成します。
h = uicontrol('Style', 'pushbutton', 'String', 'Clear',...
'Position', [20 150 100 70], 'Callback', 'cla');
ポップアップメニューを指定し、オブジェクトのCallbackとしてM-ファイル名を与えることで、Figureのカラーマップを変更するUicontrolオブジェクトを作成することができます。
hpop = uicontrol('Style', 'popup',...
'String', 'hsv|hot|cool|gray',...
'Position', [20 320 100 50],...
'Callback', 'setmap');
これは、メニュー内に4つの選択(hsv, hot, cool,gray)を定義します。 Stringプロパティを使って、"|" で区切りながらこれらの選択を指定します。
この場合のsetmapであるCallbackは、M-ファイル名で、単一のMATLABコマンドではなく、より複雑なコマンドの集合を定義します。setmapは、つぎのステートメントを含みます。
val = get(hpop,'Value');
if val == 1
colormap(hsv)
elseif val == 2
colormap(hot)
elseif val == 3
colormap(cool)
elseif val == 4
colormap(gray)
end
Value プロパティは、どれを選択しているかを示す数値を含みます。選択肢には、1から4までの番号が付けられます。M-ファイルsetmapは、それらを受け取り、どんな動作を実行するかを決定するために、Valueプロパティの内容を調べます。
オブジェクトの階層構造
参考
| uicontextmenu Properties | Uicontrol Properties | ![]() |