a dropdown converter in matlab appdesign
Afficher commentaires plus anciens
How to create a drop down converter in appdesign
10 commentaires
Geoff Hayes
le 4 Juil 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
le 4 Juil 2022
Geoff Hayes
le 4 Juil 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
le 5 Juil 2022
Image Analyst
le 5 Juil 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
le 5 Juil 2022
PA
le 5 Juil 2022
Image Analyst
le 5 Juil 2022
Modifié(e) : Image Analyst
le 5 Juil 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
le 6 Juil 2022
Image Analyst
le 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?
Réponses (1)
Image Analyst
le 4 Juil 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
Catégories
En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!