35.4 GUI工具函数

这些函数不实现GUI元素,但在开发实现GUI元素的程序时很有用uiwait, uiresumewaitfor仅适用于qtfltk工具包。

 
: data = guidata (h)
: guidata (h, data)

查询或设置用户自定义GUI数据。

GUI数据存储在图形句柄中h如果h不是图形句柄,则它的父图形将用于存储。

data必须是单个对象,这意味着它通常更适合作为数据容器,如元胞数组或结构体,以便可以轻松添加其他数据项。

详见: getappdata, setappdata, get, set, getpref, setpref.

广告
 
: hdata = guihandles (h)
: hdata = guihandles

返回与句柄关联的图形对象的对象句柄结构体h.

如果未指定句柄,则返回的当前数字gcf使用。

的每个分量的字段名hdata取自"tag"图形对象的属性。如果符号为空,则不返回句柄。如果有多个图形对象具有相同的符号,则中的分量hdata将是句柄的向量。guihandles包括所有可能的句柄,包括那些"HandleVisibility""off".

详见: guidata, findobj, findall, allchild.

广告
 
: tf = have_window_system ()

如果窗口系统(X11、Windows或Apple OS X)可用,则返回true,否则返回false。

详见: isguirunning.

广告
 
: tf = isguirunning ()

如果Octave在GUI模式下运行,则返回true,否则返回false。

详见: have_window_system.

广告
 
: pos = getpixelposition (h)
: pos = getpixelposition (h, rel_to_fig)

以像素为单位返回用户界面组件的位置。

第一个参数h必须是uibuttongroup、uicontrol、uipanel、uitable、axes或figure类型的有效图形对象的句柄。对于其他对象类型,函数返回零。

默认情况下,返回的位置是相对于对象的父对象的。如果第二个参数rel_to_fig如果逻辑上为真,则位置是相对于封闭图形对象计算的。

返回值pos是一个包含值的4元素向量[lower_left_X, lower_left_Y, width, height].

详见: get.

广告
 
: fonts = listfonts ()
: fonts = listfonts (h)

列出系统字体。

如果图形对象的控制柄h提供,还包括来自对象的"FontName"属性。

编程注意事项:在本机不使用FontConfig的系统上(除Linux以外的所有系统),字体缓存是在安装Octave时构建的。你需要托伦system ("fc-cache -fv")安装新字体后手动操作。

详见: uisetfont, text, axes, uicontrol.

广告
 
: movegui
: movegui (h)
: movegui (pos)
: movegui (h, pos)
: movegui (h, event)
: movegui (h, event, pos)

移动从图形对象句柄指定的图形对象h到屏幕上从定义的位置pos.

h是图形句柄,或图形对象的句柄。在Latercase中,将使用其父图形。如果未指定,h如果正在执行回调,将被相关图形的句柄所困扰(gcbf),否则将设置为当前图形的句柄(gcf).

pos是两值数值向量或字符串。如果pos是数字的,那么它必须是形式的[h, v]指定图形相对于屏幕的水平偏移和垂直偏移。正值表示屏幕左侧(或垂直组件的底部)与图形左侧(或底部)之间的偏移。负值表示屏幕右侧(或顶部)与图形右侧(或上部)之间的偏差。

的可能值pos作为字符串

north

屏幕的顶部中心。

广告
south

屏幕的底部中心。

广告
east

屏幕的右中心。

广告
west

屏幕的左中心。

广告
northeast

屏幕的右上角。

广告
northwest

屏幕的左上角。

广告
southeast

屏幕的右下角。

广告
southwest

屏幕的左下角。

广告
center

屏幕中心。

广告
onscreen (default)

该图形将被最小限度地移动,以便在屏幕上完全可见,屏幕两侧有30像素的额外填充。如果没有提供,这是默认值。

广告

event包含将被忽略的事件数据。此构造便于从回调调用movegui。

广告
 
: openvar (name)

打开变量name在图形变量编辑器中。

广告
 
: uiwait
: uiwait (h)
: uiwait (h, timeout)

挂起程序执行,直到出现带句柄的图形为止h被删除或uiresume被调用。

如果未指定图形句柄,此函数将使用当前图形。如果图形句柄无效或没有当前图形,则此函数将立即返回。

当被指定时,timeout定义等待图形对象删除或uiresume呼叫超时值必须至少为1。如果指定了较小的值,则会报警告,并使用超时值1。如果指定了非整数值,则会将其截断为0。如果timeout如果未指定,则程序执行将无限期挂起。

详见: uiresume, waitfor.

广告
 
: uiresume (h)

使用暂停恢复程序执行uiwait.

句柄h必须与中指定的上相同uiwait。如果句柄无效或没有uiwait具有句柄的图形的调用挂起h,此函数不起任何作用。

详见: uiwait.

广告
 
: waitfor (h)
: waitfor (h, prop)
: waitfor (h, prop, value)
: waitfor (…, "timeout", timeout)

挂起当前程序的执行,直到图形句柄上的条件满足为止h.

当程序暂停时,图形事件仍会正常处理,允许回调修改图形对象的状态。此函数是可重入的,可以从回调中调用,而另一个函数waitfor调用在函数外部挂起。

在第一种形式中,程序执行被暂停,直到图形对象h被摧毁。如果图形句柄无效,或者h是根图形句柄,没有属性prop如果提供了,函数将立即返回。

在第二种形式中,执行被挂起,直到图形对象被破坏或名为prop被修改。如果图形句柄无效或属性不存在,则函数会立即返回。

在第三种形式中,执行被挂起,直到图形对象被破坏或名为prop设置为value.函数isequal用于比较属性值。如果图形句柄无效,则表示该属性不存在或该属性已设置为value,函数将立即返回。

可以使用属性指定可选超时"timeout"。此超时值是等待条件符合的秒数。timeout必须至少为1。如果指定了一个较小的值,则会报警告,并使用值1。如果超时值不是整数,它会被截断为0。

在名为的属性上定义条件"timeout",使用字符串'\timeout'相反

在任何情况下,输入CTRL-C都会立即停止程序执行。

详见: waitforbuttonpress, isequal.

广告

版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2