Selecting a dropdown value and getting an answer AFTER pressing button (in App Designer)

16 次查看(过去 30 天)
Hi there,
I've been trying to build a GUI in App Designer where:
  1. you select a certain drop down value;
  2. You press a button;
  3. You get a message or the answer displayed in a text box, depending on the selected drop down value.
I can't seem to get this done though. I don't really know how to connect the selected drop down value to a certain outcome in the textbox, AFTER the button is pressed. In fact, I'm generally struggling with these callback functions.
Can anyone help me?
My current code is as follows:
methods (Access = private)
% Callback function
function ScenarioDropDownValueChanged(app, event)
value = app.ScenarioDropDown.Value;
end
% Button pushed function: BerekenenButton
function BerekenenButtonPushed(app, event)
if ScenarioDropDownValueChanged(value,'-kies-')
app.BestesystemenTextArea.Value='error, select scenario'
elseif ScenarioDropDownValueChanged(value,'Selection1')
app.BestesystemenTextArea.Value='Systeem 1'
else app.BestesystemenTextArea.Value='Systeem 2'
end
end
% App initialization and construction
methods (Access = private)
% Create UIFigure and components
function createComponents(app)
% Create BerekenenButton
app.BerekenenButton = uibutton(app.UIFigure, 'push');
app.BerekenenButton.ButtonPushedFcn = createCallbackFcn(app, @BerekenenButtonPushed, true);
app.BerekenenButton.FontWeight = 'bold';
app.BerekenenButton.Position = [266 219 100 22];
app.BerekenenButton.Text = 'Berekenen';
% Create BestesystemenTextArea
app.BestesystemenTextArea = uitextarea(app.UIFigure);
app.BestesystemenTextArea.Position = [272 97 150 60];
% Create ScenarioDropDown
app.ScenarioDropDown = uidropdown(app.UIFigure);
app.ScenarioDropDown.Items = {'-kies-', 'Selection1', 'Selection2', 'Selection3'};
app.ScenarioDropDown.ValueChangedFcn = createCallbackFcn(app, @ScenarioDropDownValueChanged, true);
app.ScenarioDropDown.Position = [281 368 145 22];
app.ScenarioDropDown.Value = '-kies-';
end
Thank you,
Jo

采纳的回答

Geoff Hayes
Geoff Hayes 2020-5-1
Jo - I think that you can just access the drop down value directly from the button callback (you probably don't want to be calling ScenarioDropDownValueChanged from with the button callback). Try the following
function BerekenenButtonPushed(app, event)
value = app.ScenarioDropDown.Value;
if strcmpi(value,'-kies-')
app.BestesystemenTextArea.Value='error, select scenario'
elseif strcmpi(value,'Selection1')
app.BestesystemenTextArea.Value='Systeem 1'
else
app.BestesystemenTextArea.Value='Systeem 2'
end
end
I'm assuming that value is the string representing the selection from the drop down control.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Develop Apps Using App Designer 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by