MATLAB Answers

How to add uibuttongroup to a toolbar

2 ビュー (過去 30 日間)
xi
xi 2019 年 10 月 7 日
コメント済み: xi 2019 年 10 月 10 日
I want to add 3 toggle buttons to the toolbar. They are exclusive, i.e., only one of them should be pressed.
It is easy to create these buttons on a figure by using uibuttongroup, which takes care of the desired behavior. Is it possible to add them to the toolbar?

  0 件のコメント

サインインしてコメントする。

採用された回答

Chidvi Modala
Chidvi Modala 2019 年 10 月 10 日
Hello Xi,
From my understanding, you want to add 3 toggle buttons to the toolbar and you want only one toggle button being active at the same time.
You can make use of 'uitoggletool' to create a toggle button on toolbar and create appropriate callbacks for toggle action to set the state of other toggle buttons
For example
function createToggleButtons
f = figure('ToolBar','none');
tb = uitoolbar(f);
img = zeros(16,16,3);
% Create 2 toolbar items (set one among them to have ‘on’ State)
tb1 =uitoggletool(tb,'CData',img,'TooltipString','ToggleButton1','State','on');
tb2=uitoggletool(tb,'CData',img,'TooltipString','ToggleButton2');
% Set the callback for each toggle passing itself and the other toggle
% to the callback
set(tb1,'ClickedCallback',@(obj,event)ToggleToolbar(obj,tb2));
set(tb2,'ClickedCallback',@(obj,event)ToggleToolbar(obj,tb1));
end
function ToggleToolbar ( primary, secondary )
% Switch the other toolbar state based on the value of the
% toolbar which the user clicked on.
switch get ( primary, 'State' )
case 'on'
set ( secondary, 'State', 'off' );
case 'off'
set ( secondary, 'State', 'on' );
end
end

  1 件のコメント

xi
xi 2019 年 10 月 10 日
Although I'm seeking solutions by taking advantages of the "uibuttongroup", your solution is simpler than what I thought, especially the idea of using one shared callbackfunction.
If I have more than two toggle buttons, I can simply use "findobj" to set the states of all togglebuttons 'off' and turn on the current one.
Thx!

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by