kivy/examples/demo/pictures/main.py

59 lines
1.5 KiB
Python
Raw Normal View History

2011-06-19 17:42:40 +00:00
'''
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
2011-02-22 23:21:35 +00:00
from kivy.app import App
from kivy.logger import Logger
2011-02-22 23:21:35 +00:00
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):
2011-06-19 17:42:40 +00:00
'''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.
'''
2011-02-22 23:21:35 +00:00
source = StringProperty(None)
2011-02-22 23:21:35 +00:00
class PicturesApp(App):
2011-02-22 23:21:35 +00:00
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
2011-02-22 23:21:35 +00:00
if __name__ in ('__main__', '__android__'):
PicturesApp().run()