How to make two drop down Dependent
25 ビュー (過去 30 日間)
古いコメントを表示
I have two drop down on my App Designer app, like this:
DropDown1.Items = {'1','2','3','4','5'};
DropDown1.ItemsData = [1,2,3,4,5];
DropDown2.Items = {'10','20','30','40','50'};
DropDown2.ItemsData = [1,2,3,4,5];
I would like to make this drop down dependent, so, if I choose on the DropDown1 the second option ({'2'}), the DropDown2 display the same position option (the second {'20'}) and so on any position I choose.
Is there any way to make this on App Designer or GUI?
2 件のコメント
Geoff Hayes
2019 年 5 月 29 日
Adrian - you can probably do something in the callback for the first drop down: when this fires (due to a change in the choice), then update the selected value in the second drop down.
採用された回答
Luna
2019 年 5 月 29 日
編集済み: Luna
2019 年 5 月 29 日
Here is a basic test app I have created.
Please read comments carefully.
classdef testDropDown < handle
properties
dd1 % will be used for dropdown1 handle
dd2 % will be used for dropdown2 handle
end
methods
function obj = testDropDown(obj) % obj is testDropDown obj whose superclasses is handle class
hFig = figure;
%% dropdown1 assigned as a property for testDropDown Class
obj.dd1 = uicontrol('Parent',hFig,'Style','popupmenu','Units','normalized','Position',[0.1 0.3 0.5 0.1],'Callback',@obj.dd1Callback,'String',{'1','2','3'});
%% dropdown2 assigned as a property for testDropDown Class
obj.dd2 = uicontrol('Parent',hFig,'Style','popupmenu','Units','normalized','Position',[0.1 0.1 0.5 0.1],'Callback',@obj.dd2Callback,'String',{'10','20','30'});
end
function dd1Callback(obj,src,evnt) % when clicked on dropdown1 this callback will be executed.
obj.dd2.Value = src.Value; % gets the value of the source(src) which is the object handle of the item that you have clicked on and assignes it to the other dropdown's value.
end
function dd2Callback(obj,src,evnt) % when clicked on dropdown2 this callback will be executed.
% obj is the main class object
% src is the source of that callback executed it can be a button or a dropdown menu item,etc.
% evnt is the event handle that stores the clicking event.
end
end
end
Read more about handle classes you can find lots of information.
3 件のコメント
その他の回答 (0 件)
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!