app designer button push color change
80 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Allison Carey
el 9 de Nov. de 2018
Comentada: Amrit Zoad
el 20 de En. de 2021
Hi everyone,
I have an app designer app that includes a button that turns green when pressed. However, whenever any other button is pressed, a panel comes up but does not cover the now green button. So, the button is still green but I want it to go back to white when any other button is pressed after.
Thank you!!
1 comentario
Caglar
el 9 de Nov. de 2018
You can create a method (function) that sets that button's color to original color and call that function in each of other buttons.
Respuesta aceptada
Cris LaPierre
el 12 de Nov. de 2018
Editada: Cris LaPierre
el 12 de Nov. de 2018
Code execution in an app is initiated by callback functions. When you open the app in appDesigner and right click on the button that turns green in Design View, you should see a menu option for callbacks. Hover over it and a second menu appears with the option "Go to <button name> callback". That will take you to the code that executes when you press on the button. There you will see how they set the color to green. If my button is called Button4, the code might look like this:
% Button pushed function: Button4
function Button4Pushed(app, event)
...
app.Button4.BackgroundColor = 'g';
end
You can create a separate function that turns the background color back to the default and call that, or you can directly reset the background color inside another function. For example, if another button is call Button2, I might add this code to return Button4 to the default background color:
% Button pushed function: Button2
function Button2(app, event)
...
app.Button4.BackgroundColor = [0.96,0.96,0.96];
end
Incidentally, the default background color is [0.96,0.96,0.96].
7 comentarios
Cris LaPierre
el 20 de En. de 2021
You will probably need to add a pause to your code before you set the color to green in order to see the orange. The code is likley executing so quickly that the button is only orange for a very short amount of time.
Amrit Zoad
el 20 de En. de 2021
Hi Cris,
Thanks a lot! :)
Although my code in the center took more than 200 secs to process, still the Orange button wasn't showing up. Adding pause(1), did the trick.
Thanks again. :D
Más respuestas (1)
Prince Ogbodum
el 1 de Sept. de 2020
Is there a way to get this done for MATLAB R2007b?? I mean to change background color only when another buton is pressed. For example: I have an app with 3 pushbuttons and I want a case whereby If Psbtn1 is pressed its color turns red to show it is active, if Psbtn2 is then pressed it turns red while Psbtn1 returns to its default color to show that the active state is that of Psbtn2
3 comentarios
Prince Ogbodum
el 1 de Sept. de 2020
Thanks for the response Cris. However, that didn't seem to solve my problem. I have attached a screen short of the response I got after inputing the code and clicking the pushbutton. Let me restate my question for better clarity.
I am trying to create a GUI to control the speed and rotation of a DC motor. So, I want a case whereby if the pushbutton representing speed1 is pressed (there are 5 of them), it turns red to indicate to the user or observer that the motor is running at speed1. If the pushbutton representing speed2 is pressed then it turns red while speed1 button returns to its default color to indicate that the motor is now running at speed2 and so on. So, what I need is the code to achieve this. Thanks in anticipation.
Steven Lord
el 1 de Sept. de 2020
In release R2007b, you can't use the dot syntax to set properties of a Handle Graphics object. You will need to call set.
set(handles.pushbutton2, 'BackgroundColor', 'r')
Ver también
Categorías
Más información sobre Graphics Object Properties en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!