主要内容

guidata

存储或检索 UI 数据

说明

注意

建议将 App 数据存储在主 App 图窗的 UserData 属性中(而不是使用 guidata),因为这样会产生更易读的代码。有关存储和共享 App 数据的详细信息,请参阅在回调之间共享数据

如果 obj 是图窗,则 guidata(obj,data) 将指定的数据存储在其应用程序数据中;如果它是另一个组件,则存储在 obj 的父图窗的应用程序数据中。有关详细信息,请参阅guidata 如何管理数据

示例

data = guidata(obj) 返回之前存储的数据,如果未存储任何内容,则返回空矩阵。

示例

全部折叠

创建一个编程 UI,当您点击它时,它会存储和检索计数器数据。

首先,创建一个名为 progCounter.m 的程序文件。在该程序文件中:

  • 创建一个图窗。

  • 创建一个结构体,其中一个字段值初始化为零。

  • 将数据存储在该图窗中。

  • 定义一个回调函数,该回调函数从图窗中检索数据,更改数据,并在图窗中再次存储新数据。

运行程序并在图窗内点击。更新后的数据出现在命令行窗口中。

f = figure;
data.numberOfClicks = 0; 
guidata(f,data)
f.ButtonDownFcn = @My_Callback;

function My_Callback(src,event)
data = guidata(src);
data.numberOfClicks = data.numberOfClicks + 1;
guidata(src,data)
data
end
data = 

  struct with fields:

    numberOfClicks: 1

输入参数

全部折叠

图形对象,如 FigureAxesIllustration,或 UI 对象。使用此参量指定存储 data 的图窗。如果指定的对象不是图窗,则该对象的父图窗将用于存储 data

要存储在图窗中的数据,指定为任何 MATLAB 数据。通常,data 指定为结构体,以便您根据需要添加新字段。例如,创建具有名为 Category 的字段的数据结构体,将来自字段的数据存储在该结构体中,并在命令行窗口中显示存储的数据:

data.Category = 'Projected Growth';
guidata(gcf,data);
data = guidata(gcf)

算法

全部折叠

版本历史记录

在 R2006a 之前推出