Today we will make a button with Kivy and learn how to change the its color. Before we start, remember to use the virtual environment to play with the Kivy module to prevent any mishaps with other modules.
If you need a guide on how to do this, refer to my “How to install the Kivy module in Python?” shot.
Alright, it’s time to get down to some coding. First, we will start off with making a simple button.
Input:
import kivyfrom kivy.app import appfrom kivy.uix.button import Buttonclass ButtonApp(App):def build(self):# Make a variable for the Button class being called from Kivybutton = Button(text="Hello World!")return buttonif __name__ == '__main__':ButtonApp().run()
Output:
This is a button that does nothing once it’s pressed, but it’s okay because we are more worried about the design parts of this app than the logic. The next part is going to show how to change the color. So, what we need to do is in our variable, button, we need to go into the Button()
method and add the keyword argument background_color
.
It is pretty simple to make sense out of this color system. This color system is based on the RGB values, so to set the color to blue would be background_color = (0, 0, 1, 1)
. To understand what is going on, the tuple stands for (Red, Green, Blue, Opacity) and the 0’s stand for 0% (or 0/255) while the 1’s stand for 100% (or 255/255). The last value in the tuple (1) stands for opacity, which is also percentage-based.
Input:
import kivyfrom kivy.app import appfrom kivy.uix.button import Buttonclass ButtonApp(App):def build(self):# Make a variable for the Button class being called from Kivybutton = Button(text="Hello World!",background_color=(0,0,1,1))return buttonif __name__ == '__main__':ButtonApp().run()
Output:
Alright, we have a blue button! If you wanted a different shade of blue, you can always refer to an HTML color picker off of Google and divide each RGB value by 255. For instance, if we wanted a pink button, the code would be background_color=(255/255, 19/255, 230/255, 1)
.
Another way of creating and coloring a button using the Kivy design language is by making a .kv
file, but I will cover that in a different shot. For now, this will be enough for creating and changing the color of a button in a .py
file with Kivy.