Matlab:设置GUI编辑文本的默认值,并在按钮回调中使用它们

时间:2015-08-14 01:18:03

标签: matlab parameter-passing setdefault

我正在尝试使用默认值初始化GUI(使用GUIDE构建),然后,如果用户未更改默认值,请在按钮回调触发的函数中使用这些值。

为此,在_CreateFcn内,我首先将默认值存储在handles中,然后使用set(hObject, ...)设置GUI的默认值,最后使用{{更新guidata 1}}

如果用户更改了值,我会将更新后的值存储在guidata(hObject, handles);函数内的句柄中,并使用_Callback读取值并使用get(hObject, ...)

更新guidata

按下按钮时,在按钮guidata(hObject, handles);功能内,我从_Callback中提取值。

以下是什么:

  • 如果用户没有更改GUI上的值并只是按下按钮,我从存储在句柄中的变量中读出的内容是的值变量,但变量的实际句柄(例如:handles
  • 另一方面,如果用户 在按下按钮之前更改了值,那么一切正常,我得到实际的变量值。

我错过了什么?

更新

oro777 评论之后,我添加了其余代码以便更好地进行分析。我也试过更新的(R2015b)MATLAB版本,结果是一样的,区别在于现在按钮回调函数中的27.0098876953125显示整个句柄结构而不仅仅是id:< / p>

disp

我也注意到以下几点:   - 如果我启动UIControl (ampmin) with properties: Style: 'edit' String: '1' BackgroundColor: [1 1 1] Callback: @(hObject,eventdata)GUI('ampmin_Callback',hObject,eventdata,guidata(hObject)) Value: 0 Position: [15.6000 14.6154 10.2000 1.6923] Units: 'characters' Use get to show all properties 文件,一切正常   - 如果我按下.fig文件上的run按钮,则会出现上述奇怪的行为

以下是代码:

.m

0 个答案:

没有答案