Kivy is a platform independent GUI tool in Python. As it can be run on Android, IOS, linux and Windows etc. It is basically used to develop the Android application, but it does not mean that it can not be used on Desktops applications.
👉🏽 Kivy Tutorial – Learn Kivy with Examples.
Scatter
Scatter is used to build interactive widgets that can be translated, rotated and scaled with two or more fingers on a multitouch system.
It contains its own matrix transformations. The Scatter class allows a user to drag, scale, and rotate any widget, which is under its control.
Just like in Relativelayout, the children are positioned relative to the scatter.
So when dragging the scatter, the position of the children don’t change, only the position of the scatter does.
The scatter size has no impact on the size of its children. If you want to resize it you can use scale, which transform both the scatter and its children but does not change size.
Basic Approach:
1) import kivy
2) import kivyApp
3) import scatter
4) import Relativelayout
5) import widget
6) Set minimum version(optional)
7) create Widget class
8) create layout class
9) create App class
10) create the, kv file
11) return Layout/widget/Class(according to requirement)
12) Run an instance of the class
To use scatter you must first have to import it by command:
from kivy.uix.scatter import Scatter
# Implementation of the Approach:
.py file
import kivy
from kivy.app import App
kivy.require( '1.9.0' )
from kivy.uix.scatter import Scatter
from kivy.uix.widget import Widget
from kivy.uix.relativelayout import RelativeLayout
class SquareWidget(Widget):
pass
class ScatterWidget(Scatter):
pass
class Scatter_App(RelativeLayout):
pass
class ScatterApp(App):
def build( self ):
return Scatter_App()
if __name__ = = '__main__' :
ScatterApp().run()
|
.kv file
<SquareWidget>:
size: 100 , 100
canvas:
Color:
rgb: [ 0.345 , 0.85 , 0.456 ]
Rectangle:
size: self .size
pos: self .pos
<Scatter_App>:
canvas:
Color:
rgb: . 8 , . 5 , . 4
Rectangle:
size: self .size
pos: self .pos
ScatterWidget:
id : square_widget_id
SquareWidget:
Label:
text: 'Position: ' + str (square_widget_id.pos)
size_hint: . 1 , . 1
pos: 500 , 300
|
Output:

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
06 Feb, 2020
Like Article
Save Article