您可以通过不同的方式将数据附加到特定的 GUI 对象
1.使用用户数据
GUI 对象的属性UserData 可以存储您选择的变量(要存储多个变量,只需将它们收集在结构、单元格或数组中。
使用get 或set 数据的对象句柄。例如,设置/获取带有标签 edit1
的编辑文本框的 UserData
set(handles.edit1, 'UserData', 2)
get(handles.edit1, 'UserData')
ans =
2
请注意,在回调中您可以编写 hObject 来获取当前句柄。
2。使用应用程序数据
一个非常相似的方法是使用setappdata 将数据存储到GUI 对象,从而创建与该对象/句柄关联的您自己的键值 映射。与 UserData 方法的不同之处在于,您可以创建多个不同的键值对(因此不需要在 struct/cell/array 中收集所有内容)。
setappdata(handles.edit1, 'Foo', 1);
setappdata(handles.edit1, 'Bar', 3);
getappdata(handles.edit1)
ans =
Foo: 1
Bar: 3
getappdata(handles.edit1, 'Foo')
ans =
1
3.使用 guidata
另一种变体是将单个变量(如 UserData)分配给主 GUI 图,而不是分配给特定句柄。这是通过使用guidata 完成的。没有使用键/名称来设置数据。
guidata(anyHandleInGUI, myData)
第一个输入是主图形句柄或其任何子句柄。
guidata(handles.edit1, 5)
guidata(handles.edit1)
ans =
5
假设你的按钮有标签pushbutton1。由于guidata 定位到根父节点(图形句柄),因此您可以使用其句柄获取相同的数据。
guidata(handles.pushbutton1)
ans =
5