mirror of https://github.com/kivy/kivy.git
59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
'''
|
|
Pictures demo
|
|
=============
|
|
|
|
This is a basic picture viewer, using the scatter widget.
|
|
'''
|
|
|
|
import kivy
|
|
kivy.require('1.0.6')
|
|
|
|
from glob import glob
|
|
from random import randint
|
|
from os.path import join, dirname
|
|
from kivy.app import App
|
|
from kivy.logger import Logger
|
|
from kivy.uix.scatter import Scatter
|
|
from kivy.properties import StringProperty
|
|
# FIXME this shouldn't be necessary
|
|
from kivy.core.window import Window
|
|
|
|
|
|
class Picture(Scatter):
|
|
'''Picture is the class that will show the image with a white border and a
|
|
shadow. They are nothing here because almost everything is inside the
|
|
picture.kv. Check the rule named <Picture> inside the file, and you'll see
|
|
how the Picture() is really constructed and used.
|
|
|
|
The source property will be the filename to show.
|
|
'''
|
|
|
|
source = StringProperty(None)
|
|
|
|
|
|
class PicturesApp(App):
|
|
|
|
def build(self):
|
|
|
|
# the root is created in pictures.kv
|
|
root = self.root
|
|
|
|
# get any files into images directory
|
|
curdir = dirname(__file__)
|
|
for filename in glob(join(curdir, 'images', '*')):
|
|
try:
|
|
# load the image
|
|
picture = Picture(source=filename, rotation=randint(-30,30))
|
|
# add to the main field
|
|
root.add_widget(picture)
|
|
except Exception, e:
|
|
Logger.exception('Pictures: Unable to load <%s>' % filename)
|
|
|
|
def on_pause(self):
|
|
return True
|
|
|
|
|
|
if __name__ in ('__main__', '__android__'):
|
|
PicturesApp().run()
|
|
|