这些函数不实现 GUI 元素,但在开发实现 GUI 元素的程序时很有用。函数 uiwait、uiresume 和 waitfor 仅适用于 qt 或 fltk 工具包。
data = guidata (h) ¶(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" 的句柄。
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 是一个包含值 [lower_left_X, lower_left_Y, width, height] 的 4 元素向量。
另请参阅: get.
fonts = listfonts () ¶fonts = listfonts (h) ¶列出系统字体。
如果提供了图形对象的句柄 h,则还会在列表中包含该对象的 "FontName" 属性中的字体。
编程注意事项:在非原生使用 FontConfig 的系统上(除 Linux 外的所有系统),字体缓存在安装 Octave 时构建。安装新字体后,您需要手动运行 system ("fc-cache -fv")。
(h) ¶(pos) ¶(h, pos) ¶(h, event) ¶(h, event, pos) ¶将由图形句柄 h 指定的图形移动到屏幕上由 pos 定义的位置。
h 是图形句柄或图形对象的句柄。如果是后者,则使用其父图形。如果未指定,则在执行回调时将 h 设置为相关图形的句柄(gcbf),否则将其设置为当前图形的句柄(gcf)。
pos 可以是两个值的数值向量或字符串。如果 pos 是数值,则其形式必须为 [h, v],指定图形相对于屏幕的水平偏移和垂直偏移。正值表示屏幕左侧(或垂直分量的底部)与图形左侧(或底部)之间的偏移。负值表示屏幕右侧(或顶部)与图形右侧(或顶部)之间的偏移。
pos 作为字符串的可能值为:
north屏幕顶部中央。
south屏幕底部中央。
east屏幕右侧中央。
west屏幕左侧中央。
northeast屏幕右上角。
northwest屏幕左上角。
southeast屏幕右下角。
southwest屏幕左下角。
center屏幕中心。
onscreen (default)图形将被最小程度地移动,使其完全在屏幕上可见,并在屏幕两侧额外保留 30 像素的边距。如果未提供任何值,这是默认值。
event 包含将被忽略的事件数据。此构造便于从回调中调用 movegui。
(name) ¶在图形变量编辑器中打开变量 name。
(h) ¶(h, timeout) ¶挂起程序执行,直到句柄为 h 的图形被删除或 uiresume 被调用。
如果未指定图形句柄,此函数将使用当前图形。如果图形句柄无效或没有当前图形,则此函数立即返回。
如果指定了 timeout,它定义了等待图形对象被删除或 uiresume 被调用的超时值(以秒为单位)。超时值必须至少为 1。如果指定了较小的值,则会发出警告,并使用超时值 1。如果指定了非整数值,则将其截断为 0。如果未指定 timeout,则程序执行将无限期挂起。
(h) ¶恢复被 uiwait 暂停的程序执行。
句柄 h 必须与 uiwait 中指定的句柄相同。如果句柄无效,或者没有为句柄 h 的图形挂起的 uiwait 调用,则此函数不执行任何操作。
另请参阅: uiwait.
(h) ¶(h, prop) ¶(h, prop, value) ¶(…, "timeout", timeout) ¶挂起当前程序的执行,直到在图形句柄 h 上满足条件为止。
当程序暂停时,图形事件仍会正常处理,允许回调修改图形对象的状态。此函数是可重入的,可以从回调中调用,即使另一个 waitfor 调用正在顶层挂起。
在第一种形式中,程序执行被暂停,直到图形对象 h 被销毁。如果图形句柄无效,或者 h 是根图形句柄且未提供属性 prop,则函数立即返回。
在第二种形式中,执行被挂起,直到图形对象被销毁或名为 prop 的属性被修改。如果图形句柄无效或属性不存在,则函数立即返回。
在第三种形式中,执行被挂起,直到图形对象被销毁或名为 prop 的属性被设置为 value。函数 isequal 用于比较属性值。如果图形句柄无效、属性不存在或属性已设置为 value,则函数立即返回。
可以使用 "timeout" 属性指定可选的超时值。此超时值是等待条件满足的秒数。timeout 必须至少为 1。如果指定了较小的值,则会发出警告,并使用值 1。如果超时值不是整数,则将其向 0 截断。
要在名为 "timeout" 的属性上定义条件,请改用字符串 '\timeout'。
在任何情况下,输入 CTRL-C 都会立即停止程序执行。
另请参阅: waitforbuttonpress, isequal.