句柄没有使用GUIDE从按钮更新

1查看(最近30天)
Pratik Chachad.
Pratik Chachad. 2021年8月10日
评论道: Pratik Chachad.2021年8月10日
大家好,
对于我自己的理解,我试图创建一个简单的计数器GUI与2个按钮,即“开始计数”和“停止计数”
开始计数 - 开始计数器
停止计数-停止计数
我有麻烦停止运行计数器使用停止按钮。由于某些原因,句柄。stop在StopCounter_Callback中被设置为1,它不会在StartCounter_Callback中反映。
下面是代码片段。
任何帮助都将不胜感激。提前谢谢。
函数StartCounter_Callback(hObject, eventdata, handles)
counter = 0;
句柄。开始= 1;
而(1)
guidata (hObject处理);
如果(处理。停止= = 0)
Counter = Counter + 1;
myString = sprintf('值是%d',计数器);
集(handles.text1,“字符串”, myString);
drawnow;
暂停(0.1);
其他的
重置开始和停止按钮
句柄。停止= 0;
句柄。开始= 0;
返回;
结束
结束
%---在stopCounter中执行按钮按下。
函数StopCounter_Callback(hObject, eventdata, handles)
如果(处理。start = = 1)
句柄。停止= 1;
结束
guidata (hObject处理);

接受的答案

里克
里克 2021年8月10日

循环函数不会存储修改后的句柄结构。

guidata (hObject处理);把它放在返回语句之前
1评论
Pratik Chachad.
Pratik Chachad. 2021年8月10日
你好 @Rik 谢谢你的回复。我想我找到了答案。问题是我没有从句柄结构中检索更新的元素。
“处理= guidata (handles.figure1);“
我更新的代码在这里。现在一切正常。谢谢。
函数StartCounter_Callback (hObject eventdata处理)
%运行循环一次,如果开始已经运行了
如果(处理。= = 0开始)
句柄。开始= 1;
%保存数据
guidata (hObject处理);
counter = 0;
(handles.start)
处理= guidata(handles.figure1);
如果(处理。停止= = 0)
Counter = Counter + 1;
mystring = sprintf(的值是% d '、计数器);
集(handles.text1,“字符串”, myString);
drawnow;
其他的
重置开始和停止按钮
句柄。停止= 0;
句柄。开始= 0;
%保存数据
guidata (hObject处理);
结束
结束
结束
函数StopCounter_Callback (hObject eventdata处理)
StopCounter的% hObject句柄(参见GCBO)
% eventdata保留-将在MATLAB的未来版本中定义
%使用句柄和用户数据处理结构(参见GUIDATA)
如果(处理。start = = 1)
句柄。停止= 1;
结束
guidata (hObject处理);

登录评论。

更多的答案(0)

下载188bet金宝搏


释放

R2018B.

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!