how to call a function inside a button created in a function?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello everyone, I created a function in matlab in which when I introduce some values they are printed on some static text and I create a button that allows me to delete the row where the button is (the variables I keep in a struct). My question is, how can I use the callback of the delete button within the function? I attached the code so you can understand it better
function [c,t,v,fn,ln,btn] = addInfo(countElement,E)
for i=1:countElement
c = uicontrol('Style','text',...
'String',i,...
'Position',[20 460-30*(i-1) 20 20]);
t = uicontrol('Style','text',...
'String',E(i).Type,...
'Position',[70 460-30*(i-1) 60 20]);
v = uicontrol('Style','text',...
'String',E(i).V,...
'Position',[145 460-30*(i-1) 35 20]);
fn = uicontrol('Style','text',...
'String',E(i).Fnode,...
'Position',[210 460-30*(i-1) 35 20]);
ln = uicontrol('Style','text',...
'String',E(i).Lnode,...
'Position',[275 460-30*(i-1) 35 20]);
btn = uicontrol('Style', 'pushbutton', 'String', '-',...
'Position', [330 460-30*(i-1) 35 20],...
'Callback', @deleteInfo%%my problem is here);
end
function [ c,t,v,fn,ln,btn ] = deleteInfo( c,countElement,E )
a=str2double(get(handles.c,'String'));
E(a)=[];
countElement=countElement-1;
for i=1:countElement
c = uicontrol('Style','text',...
'String',i,...
'Position',[20 460-30*(i-1) 20 20]);
t = uicontrol('Style','text',...
'String',E(i).Type,...
'Position',[70 460-30*(i-1) 60 20]);
v = uicontrol('Style','text',...
'String',E(i).V,...
'Position',[145 460-30*(i-1) 35 20]);
fn = uicontrol('Style','text',...
'String',E(i).Fnode,...
'Position',[210 460-30*(i-1) 35 20]);
ln = uicontrol('Style','text',...
'String',E(i).Lnode,...
'Position',[275 460-30*(i-1) 35 20]);
btn = uicontrol('Style', 'pushbutton', 'String', '-',...
'Position', [330 460-30*(i-1) 35 20],...
'Callback', @deleteInfo%%my problem is here);
end
0 commentaires
Réponse acceptée
Rik
le 27 Nov 2017
Start with saving all the handles in one or multiple arrays when you initialize them (save them to guidata so you can get to them in a callback). Then in the delete callback you can loop through the array, moving all elements after the deleted object one level up.
2 commentaires
Rik
le 27 Nov 2017
I'm sorry, but I don't really understand what it is you still need to fix.
Another point: don't use globals. Set them as fields of handles.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!