Error while evaluating UIControl Callback from a checkbox on a figure

2 vues (au cours des 30 derniers jours)
Jason
Jason le 19 Mar 2021
Commenté : Jason le 20 Mar 2021
hello, Im and trying to repeat somethign that worked in GUIDE, but not in appdesigner: when the user presses a pushbutton on my GUI, a figure is created with a plot on it. I also want to have a checkbox and if the user selects it then perform some calcs on the data and display it.
fig=figure;
fig.Position = [300 500 1200 400];
ax2=subplot(1,2,2);
c2=improfile(I,x2,y2);
plot(ax2,c2,'color',[0.18 0.67 0.12]);
grid on;
title(ax2,'Vertical (ROI)','Color',[0.18 0.67 0.12])
c = uicontrol('Style', 'checkbox',...
'String', {'13.5% Width'},...
'Position', [100 3 80 20],...
'Callback', @(src,evt) calc13_5Width(src, evt,c2));
I then create a funtion (public) as:
function calc13_5Width(src, evt,c2);
disp('Here') %just testing for now
end
However i get the error message
Check for missing argument or incorrect argument data type in call to function 'calc13_5Width'.
Error in PhotonControl>@(src,evt)calc13_5Width(src,evt,c2) (line 4077)
'Callback', @(src,evt) calc13_5Width(src, evt,c2));
Error while evaluating UIControl Callback.
any ideas?
thanks
Jason

Réponses (1)

Jan
Jan le 19 Mar 2021
Modifié(e) : Jan le 19 Mar 2021
USe the debugger to check the cause of the problem. Type this in the command window:
dbstop if error
Run the code again. When Matlab stops at the error, check the locally used variables, most of all: c2
Does the same error occur, if you define the callback as:
'Callback', {@calc13_5Width, c2}, ...
  5 commentaires
Jan
Jan le 20 Mar 2021
Modifié(e) : Jan le 20 Mar 2021
Again: When do you get this error? When the callback is created or when it is called?
When does c2 exist? At creation time or when the callback is called? How did you check, that it is existing?
Error in PhotonControl>@(src,evt)calc13_5Width(src,evt,c2) (line 4077)
c = uicontrol('Style', 'checkbox',...
'String', {'13.5% Width'},...
'Position', [100 3 80 20],...
'Callback', @(src,evt) calc13_5Width(src, evt,c2)); % <<<
% Is this the line 4077?
"I do have a UIFigure which has a pushbutton on which invokes my code as above (although I do call a figure)" - Calling the callback of a GUI element of a figure from an uifigure sounds like a strange and indirect approach.
Jason
Jason le 20 Mar 2021
Its when I click the checkbox thats on the figure I get the error, so when the callback is called.
I know C2 exists as I output it in the command window, and I actually plot it on the figure and see it.
"Calling the callback of a GUI element of a figure from an uifigure sounds like a strange and indirect approach".
OK, so is there a better way. What I have is a GUI that creates a line scan through an image thats on my GUI. I create a seperate figure to show the linescan.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by