a dropdown converter in matlab appdesign
Show older comments
How to create a drop down converter in appdesign
10 Comments
Geoff Hayes
on 4 Jul 2022
@Anwesha Panda - does your GUI have the input/edit text field so that the user can enter the value of the distance between the points, and is there a text field for the output? Are you using App Designer or programmatically creating your GUI?
PA
on 4 Jul 2022
Geoff Hayes
on 4 Jul 2022
I suspect you want a callback for the drop down so that if that selection changes, then you can update the output text.
PA
on 5 Jul 2022
Image Analyst
on 5 Jul 2022
If you use App Designer as I suggested below in my answer it will automatically create a callback function and you can put your code in there. If you're doing it the hard way (manually) then you need to create that callback function yourself and tell the ui function you created the drop down list with what the name of the callback function is.
PA
on 5 Jul 2022
PA
on 5 Jul 2022
Image Analyst
on 5 Jul 2022
Edited: Image Analyst
on 5 Jul 2022
@AP did you look at the documentation for uilabel?
text = sprintf('%s\n%s','Line 1','Line 2');
label = uilabel('Text',text,'Position',[100 100 100 32]);
So to change it you should be able to simply do
label.Text = 'Blah Blah Blah fubar snafu'; % Whatever.
PA
on 6 Jul 2022
Image Analyst
on 1 Sep 2022
@AP - not sure what that means. What does it mean to "adopt" the strings? How does it get overwritten? Are you just reassigning the string to some static text label? Or do you have some other control on your figure that is covering up your string label?
Answers (1)
Image Analyst
on 4 Jul 2022
Why not use App Designer? Why are you creating yoru GUI the hard way by creating some or all of your components programmatically in code?
Here's a snippet asking the user for two inputs (numbers) that you may want to adapt, like don't convert the second one to a number and leave it as a string.
% Ask user for two floating point numbers.
defaultValue = {'45.67', '78.91'};
titleBar = 'Enter values';
userPrompt = {'Enter floating point number 1 : ', 'Enter floating point number 2: '};
caUserInput = inputdlg(userPrompt, titleBar, 1, defaultValue);
if isempty(caUserInput),return,end % Bail out if they clicked Cancel.
% Convert to floating point from string.
usersValue1 = str2double(caUserInput{1})
usersValue2 = str2double(caUserInput{2})
% Check usersValue1 for validity.
if isnan(usersValue1)
% They didn't enter a number.
% They clicked Cancel, or entered a character, symbols, or something else not allowed.
% Convert the default from a string and stick that into usersValue1.
usersValue1 = str2double(defaultValue{1});
message = sprintf('I said it had to be a number.\nTry replacing the user.\nI will use %.2f and continue.', usersValue1);
uiwait(warndlg(message));
end
% Do the same for usersValue2
% Check usersValue2 for validity.
if isnan(usersValue2)
% They didn't enter a number.
% They clicked Cancel, or entered a character, symbols, or something else not allowed.
% Convert the default from a string and stick that into usersValue2.
usersValue2 = str2double(defaultValue{2});
message = sprintf('I said it had to be a number.\nTry replacing the user.\nI will use %.2f and continue.', usersValue2);
uiwait(warndlg(message));
end
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!