35.4 GUI Utility Functions

Last-modified: 2025-03-09 (日) 10:55:51

35.4 GUIユーティリティ関数

これらの関数は GUI 要素を実装しませんが、 GUI 要素を実装するプログラムを開発するときに役立ちます。関数uiwait、uiresume、 は、 またはツールキットwaitforでのみ使用できます。 qtfltk

: data = guidata (h)
: guidata (h, data)
ユーザーカスタム GUI データを照会または設定します。

GUI データは図形ハンドルhに保存されます。hが図形ハンドルでない場合は、その親図形が保存に使用されます。

データは単一のオブジェクトである必要があり、つまり、追加のデータ項目を簡単に追加できるように、通常はセル配列や構造体などのデータ コンテナーであることが望まれます。

参照: getappdata、setappdata、get、set、getpref、setpref。

: hdata = guihandles (h)
: hdata = guihandles
ハンドルhに関連付けられた図形のオブジェクト ハンドルの構造を返します。

ハンドルが指定されていない場合は、 によって返される現在の数値gcfが使用されます。

hdataの各エントリのフィールド名は、グラフィック オブジェクトのプロパティから取得されます"tag" 。タグが空の場合、ハンドルは返されません。同じタグを持つグラフィック オブジェクトが複数ある場合、hdataのエントリはハンドルのベクトルになります。 には、のguihandles ハンドルを含む、すべての可能なハンドルが含まれます。 "HandleVisibility""off"

See also: guidata, findobj, findall, allchild.

: tf = have_window_system ()
ウィンドウ システム (X11、Windows、または Apple OS X) が使用可能な場合は true を返し、そうでない場合は false を返します。

See also: isguirunning.

: tf = isguirunning ()
Octave が GUI モードで実行されている場合は true を返し、それ以外の場合は false を返します。

参照: have_window_system。

: pos = getpixelposition (h)
: pos = getpixelposition (h, rel_to_fig)
ユーザー インターフェイス コンポーネントの位置をピクセル単位で返します。

最初の引数h は、uibuttongroup、uicontrol、uipanel、uitable、a​​xes、または figure タイプの有効なグラフィック オブジェクトへのハンドルである必要があります。その他のオブジェクト タイプの場合、関数はゼロを返します。

デフォルトでは、位置はオブジェクトの親を基準にして返されます。2 番目の引数rel_to_figが論理的に true の場合、位置は囲んでいる図オブジェクトを基準にして計算されます。

戻り値pos は、値を持つ 4 要素のベクトルです [lower_left_X, lower_left_Y, width, height]。

See also: get.

: fonts = listfonts ()
: fonts = listfonts (h)
システムフォントを一覧表示します。

グラフィック オブジェクトhへのハンドルが指定されている場合は、オブジェクトの"FontName"プロパティのフォントもリストに含めます。

プログラミング ノート: FontConfig をネイティブに使用しないシステム (Linux 以外) では、Octave のインストール時にフォント キャッシュが構築されます。system ("fc-cache -fv")新しいフォントをインストールした後は、手動で実行する必要があります。

See also: uisetfont, text, axes, uicontrol.

: movegui
: movegui (h)
: movegui (pos)
: movegui (h, pos)
: movegui (h, event)
: movegui (h, event, pos)
図形ハンドルhで指定された図形を、posで定義された画面上の位置に移動します。

hは図形ハンドル、またはグラフィックス オブジェクトのハンドルです。後者の場合、その親図形が使用されます。指定されていない場合、コールバックが実行されている場合はhは関連する図形のハンドルに設定され ( gcbf)、それ以外の場合は現在の図形のハンドルに設定されます ( gcf)。

pos は、2 つの値を持つ数値ベクトルまたは文字列です。pos が数値の場合、画面に対する図の水平および垂直オフセットを指定する形式である必要があります[h, v]。正の値は、画面の左 (垂直コンポーネントの場合は下) と図の左 (または下) の間のオフセットを示します。負の値は、画面の右 (または上) と図の右 (または上) の間のオフセットを示します。

文字列としての posの可能な値は

north
画面上部中央。

south
画面の中央下。

east
画面の右中央。

west
画面の左中央。

northeast
画面の右上。

northwest
画面の左上。

southeast
画面の右下。

southwest
画面の左下。

center
画面の中央。

onscreen (default)
図は、画面の両側から 30 ピクセルの余分なパディングを加えて、画面上で完全に表示されるように最小限移動されます。何も指定されていない場合は、これがデフォルト値になります。

eventには無視されるイベント データが含まれます。この構造により、コールバックから movegui を呼び出すことが容易になります。

: openvar (name)
グラフィカル変数エディタで 変数名を開きます。

: uiwait
: uiwait (h)
: uiwait (h, timeout)
ハンドルhを持つ図形が削除されるかuiresume呼び出されるまで、プログラムの実行を中断します。

図形ハンドルが指定されていない場合、この関数は現在の図形を使用します。図形ハンドルが無効であるか、現在の図形が存在しない場合は、この関数はすぐに戻ります。

タイムアウトを指定すると、図の削除または呼び出しを待機する秒数を定義しますuiresume。タイムアウト値は少なくとも 1 である必要があります。より小さい値を指定すると、警告が発行され、代わりにタイムアウト値 1 が使用されます。整数以外の値を指定すると、0 に切り捨てられます。タイムアウトを指定しないと、プログラムの実行は無期限に中断されます。

See also: uiresume, waitfor.

: uiresume (h)
中断されたプログラムの実行を再開しますuiwait。

ハンドルh は、 で指定された on と同じである必要がありますuiwait。ハンドルが無効であるか、ハンドルhuiwaitを持つ図に対して保留中の呼び出しがない場合、この関数は何も行いません。

See also: uiwait.

: waitfor (h)
: waitfor (h, prop)
: waitfor (h, prop, value)
: waitfor (…, "timeout", timeout)
グラフィックス ハンドルhの条件が満たされるまで、現在のプログラムの実行を中断します。

プログラムが中断されている間も、グラフィックス イベントは通常どおり処理され、コールバックによってグラフィックス オブジェクトの状態を変更できます。この関数は再入可能であり、waitfor トップレベルで別の呼び出しが保留されている間に、コールバックから呼び出すことができます。

最初の形式では、グラフィックス オブジェクト hが破棄されるまでプログラムの実行は中断されます。グラフィックス ハンドルが無効であるか、hがルート グラフィックス ハンドルであり、プロパティpropが指定されていない場合、関数はすぐに戻ります。

2 番目の形式では、グラフィックス オブジェクトが破棄されるか、propという名前のプロパティが変更されるまで実行が中断されます。グラフィックス ハンドルが無効であるか、プロパティが存在しない場合は、関数はすぐに戻ります。

3 番目の形式では、グラフィックス オブジェクトが破棄されるか、 propという名前のプロパティがvalueに設定されるまで実行が中断されます。この関数はisequal、プロパティ値を比較するために使用されます。グラフィックス ハンドルが無効であるか、プロパティが存在しないか、プロパティがすでにvalueに設定されている場合、関数はすぐに戻ります。

オプションのタイムアウトは、プロパティを使用して指定できます"timeout"。このタイムアウト値は、条件が真になるまで待機する秒数です。 タイムアウトは少なくとも 1 である必要があります。これより小さい値を指定すると、警告が発行され、代わりに値 1 が使用されます。タイムアウト値が整数でない場合は、0 に切り捨てられます。

という名前のプロパティに条件を定義するには"timeout"、代わりに文字列を使用します '\timeout'。

いずれの場合も、CTRL-C を入力するとプログラムの実行が直ちに停止します。

See also: waitforbuttonpress, isequal.