Code for action when ui toggle button is pressed
20 views (last 30 days)
I have a uibuttongroup in a ui figure. It is only one button in the group. I am trying to use the SelectionChengedFcn to activate some code once the button is pressed by the pointer. In this example, I would like the string "test" to be displayed. But nothing happens. What do I need to add? As I understand it the value of my button is set to 1 from the beginning since there is only 1 button. Possibly that is a part of the problem. Also I am a bit uncertain about the input arguments to the bselection function. Here is my code after the declarations of the parameters for the positions:
fig = uifigure('Name',''test')
bg = uibuttongroup(fig,'Position',[x_bg 0.1*h w_bg h_bg],'SelectionChangedFcn',@bselection);
tb1 = uitogglebutton(bg,'Position',[x_tb1 y_tb1 w_tb1 h_tb1],'Text','Calc');
Jorg Woehl on 8 Mar 2021
Edited: Jorg Woehl on 8 Mar 2021
Yes, that's indeed the problem - the selected button never changes because you only have one button in the button group, so the callback function is never triggered. If you add another button to your toggle button group, your code will work fine.
If you are only dealing with a single button, why don't you just use a state button?
As for the input arguments source and event to the callback function, you don't need to worry about them. What is important for you is only the value of selectedButton = app.ButtonGroup.SelectedObject in the case of the toggle button group, or value = app.Button.Value in the case of the state button, since your callback action will (normally) depend on that value.