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 Center および File ExchangeInteractive Control and Callbacks についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by