pushbutton

3 次查看(过去 30 天)
john
john 2012-2-14
编辑: a 2013-10-12
Hi,
can you help me?
I have pushbutton and static text. I need: If I press pushbutton, the value in static text should increase with number 1.
Thank you for your help

采纳的回答

Kevin Holst
Kevin Holst 2012-2-14
Your code:
function pushbutton1_Callback(hObject, eventdata, handles)
% nacitanie prvku
h=findobj(0,'Type','figure','Tag','figure1');
UserData=get(h,'UserData');
prvok=0;
if ((str2double(get(handles.pushbutton1,'string'))) == 1)
for i=1:UserData.pocet_vetiev;
prvok=prvok+1;
end
set(handles.text1, 'String',{prvok});
end
is auto-generated code from GUIDE that will be run every time the button is pushed. That's what the pushbutton callback function does. As such, you don't need to attempt to check if it is pushed, which is what I think you are trying to do here:
if ((str2double(get(handles.pushbutton1,'string'))) == 1)
the solution here is a one liner (two if you count the function identifier):
function pushbutton1_Callback(hObject, eventdata, handles)
set(h.text1,'string',num2str(str2double(get(h.text1,'string'))+1))
That's what Sean meant by use the engine part of his code.
  5 个评论
john
john 2012-2-14
if it is blank, result is NaN
if there is any initial value in text, result is OK.
So, in my program.....how can I set to 1 for value handles.prvok for example with button pushbutton2:
function pushbutton4_Callback(hObject, eventdata, handles)
h=findobj(0,'Type','figure','Tag','figure1');
UserData=get(h,'UserData');
if (UserData.prvok < UserData.pocet_vetiev)
UserData.prvok=UserData.prvok+1;
set(handles.prvok,'String',{UserData.prvok});
elseif (UserData.prvok > UserData.pocet_vetiev || UserData.prvok == UserData.pocet_vetiev )
set(handles.prvok, 'String','enough');
end
function pushbutton2_Callback(hObject, eventdata, handles)
UserData.prvok=1;
set(handles.prvok,'String',{UserData.prvok});
john
john 2012-2-14
point 1. If I press button4, value increasing...this is OK.
point 2.If I press button2, value is set to 1....this is OK.
point 3. But, if I press in next step button 4, result is not 2, but result is value from point 1 + 1....
I don't understand

请先登录,再进行评论。

更多回答(1 个)

Sean de Wolski
Sean de Wolski 2012-2-14
figure;
ht = uicontrol('units','norm','position',[0.5 0.5 0.1 0.1],'style','text','string','0');
hp = uicontrol('style','push','string','Increment','callback',{@(src,evt,H)set(H,'string',num2str(str2double(get(H,'string'))+1)),ht});
  4 个评论
john
john 2012-2-14
Sorry,
how Can I increase value without button "Increase", but with button "pushbutton1".
Sorry I'm not good in this.
Please help me
john
john 2012-2-14
here is my code:
function pushbutton1_Callback(hObject, eventdata, handles)
% nacitanie prvku
h=findobj(0,'Type','figure','Tag','figure1');
UserData=get(h,'UserData');
prvok=0;
if ((str2double(get(handles.pushbutton1,'string'))) == 1)
for i=1:UserData.pocet_vetiev;
prvok=prvok+1;
end
set(handles.text1, 'String',{prvok});
end

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by