【发布时间】:2015-04-11 04:47:10
【问题描述】:
现在,我正在开发一个基于用户输入数据绘制图形的 GUI。用户使用编辑框输入数字,然后从那里生成图。
我有两个值,周期和频率,我知道它们在数学上是相互依赖的(p=1/f,反之亦然)。我相信我已经做到了,当我编辑频率时,会计算一个新的周期值,但我还想做的是每当用户输入新的频率值时,在周期编辑框中显示周期的新值.为了说明,这里是我现在的频率编辑框的代码:
%period (ns)
function edit11_Callback(hObject, eventdata, handles)
num = str2double(get(hObject,'string'));
%global edit10;%brings frequency to edit11 function
%global edit11;%globalize period
handles.edit11 = num;
handles.edit10 = 1/num;%frequency = 1/period
set(handles.edit10,'String',num2str(1/num));%displays new frequency
guidata(hObject,handles)
注意:edit10 是句号的编辑框。我希望那个代码与我的频率相反。另外,我注释掉了“全局”行,因为我似乎不需要它们来做我想做的事情,但我确实尝试过。
"handles.edit10 = 1/num;"更新期间的实际值。据我所知,最后一行 (guidata(...)) 将全局保存handles.edit10 和handles.edit11 的新值,但如果有错误请纠正我。
不起作用的是行:“set(handles.edit10,'String',num2str(1/num));”,它应该在句点编辑框中显示句点的新值(edit10 )。
我得到的错误信息如下:
Error using handle.handle/set
Invalid or deleted object.
Error in Liposome_GUI>edit11_Callback (line 367)
set(handles.edit10,'String',num2str(1/num));%displays new frequency
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in Liposome_GUI (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)Liposome_GUI('edit11_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating uicontrol Callback
错误消息使函数edit11 似乎无法访问存储在handles.edit10 中的值,但如果我将这两个“全局”行放在edit10 和edit11 函数下,似乎没有任何改变。
谁能告诉我我做错了什么?
【问题讨论】:
标签: matlab user-interface editbox