MATLAB 帮助中心
存储或检索 UI 数据
guidata(obj,data)
data = guidata(obj)
注意
建议将 App 数据存储在主 App 图窗的 UserData 属性中(而不是使用 guidata),因为这样会产生更易读的代码。有关存储和共享 App 数据的详细信息,请参阅在回调之间共享数据。
UserData
guidata
如果 obj 是图窗,则 guidata(obj,data) 将指定的数据存储在其应用程序数据中;如果它是另一个组件,则存储在 obj 的父图窗的应用程序数据中。有关详细信息,请参阅guidata 如何管理数据。
obj
data
示例
data = guidata(obj) 返回之前存储的数据,如果未存储任何内容,则返回空矩阵。
全部折叠
创建一个编程 UI,当您点击它时,它会存储和检索计数器数据。
首先,创建一个名为 progCounter.m 的程序文件。在该程序文件中:
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
图形对象,如 Figure、Axes、Illustration,或 UI 对象。使用此参量指定存储 data 的图窗。如果指定的对象不是图窗,则该对象的父图窗将用于存储 data。
Figure
Axes
Illustration
要存储在图窗中的数据,指定为任何 MATLAB 数据。通常,data 指定为结构体,以便您根据需要添加新字段。例如,创建具有名为 Category 的字段的数据结构体,将来自字段的数据存储在该结构体中,并在命令行窗口中显示存储的数据:
Category
data.Category = 'Projected Growth'; guidata(gcf,data); data = guidata(gcf)
无论何时,guidata 都只能管理每个父图窗中的一个变量。对 guidata(obj,data) 的后续调用会覆盖之前存储的数据。通过创建具有多个字段的结构体来存储更多数据。
在 R2006a 之前推出
guihandles | getappdata | setappdata | struct
guihandles
getappdata
setappdata
struct
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处