GithubHelp home page GithubHelp logo

kivy / kivy Goto Github PK

View Code? Open in Web Editor NEW
16.9K 599.0 3.0K 74.32 MB

Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS

Home Page: https://kivy.org

License: MIT License

Python 67.25% GLSL 0.02% C 6.52% Objective-C 0.07% Emacs Lisp 0.20% Makefile 0.11% Shell 0.58% PowerShell 0.12% Cython 23.64% kvlang 0.87% Vim Script 0.04% C++ 0.02% Objective-C++ 0.56%
python ui windows ios android macos linux app kivy

kivy's Introduction

Kivy

Kivy is an open-source Python framework for developing GUI apps that work cross-platform, including desktop, mobile and embedded platforms.

The aim is to allow for quick and easy interaction design and rapid prototyping whilst making your code reusable and deployable: Innovative user interfaces made easy.

Kivy is written in Python and Cython and is built on OpenGL ES 2.0. It supports various input devices and has an extensive (and extensible) widget library. With the same codebase, you can target Windows, macOS, Linux (including Raspberry Pi OS), Android, and iOS. All Kivy widgets are built with multitouch support.

Kivy is MIT licensed, actively developed by a great community and is supported by many projects managed by the Kivy Organization.

Backers on Open Collective Sponsors on Open Collective Contributor Covenant GitHub contributors

PyPI - Version PyPI - Python Version

Windows Unittests Status Ubuntu Unittests Status OSX Unittests Status Coverage Status

Windows wheels Status Manylinux wheels Status Raspberry Pi wheels Status OSX wheels Status

Installation, Documentation and Examples

Extensive installation instructions as well as tutorials and general documentation, including an API reference, can be found at https://www.kivy.org/docs. A PDF version is also available.

Kivy ships with many examples which can be found in the examples folder.

Support

Are you having trouble using the Kivy framework, or any of its related projects? Is there an error you don’t understand? Are you trying to figure out how to use it? We have volunteers who can help!

The best channels to contact us for support are listed in the latest Contact Us document.

Contributing

We love pull requests and discussing novel ideas. Check out our latest contribution guide and feel free to improve Kivy.

It gives details of the best places online to discuss the development with the core developers and other enthusiasts.

Sibling projects

The Kivy team manager a number of additional projects that support the Kivy eco-system.

  • Buildozer: a development tool for turning Python applications into binary packages ready for installation on any of a number of platforms, including mobile devices.
  • Plyer: a platform-independent Python API for accessing hardware features of various platforms (Android, iOS, macOS, Linux and Windows).
  • PyJNIus: a Python library for accessing Java classes using the Java Native Interface (JNI).
  • Pyobjus: Python module for accessing Objective-C classes as Python classes using Objective-C runtime reflection.
  • Python for Android: a development tool that packages Python apps into binaries that can run on Android devices.
  • Kivy iOS: a toolchain to compile the necessary libraries for iOS to run Kivy applications, and manage the creation of Xcode projects.
  • Audiostream: library for direct access to the microphone and speaker.
  • KivEnt: entity-based game engine for Kivy.
  • Oscpy: a Python implementation of Open Sound Control (OSC) network protocol.
  • Garden: widgets and libraries created and maintained by users.

Licenses

  • Kivy is released under the terms of the MIT License. Please refer to the LICENSE file.
  • The provided fonts Roboto and Roboto Mono are licensed and distributed under the terms of the Apache License, Version 2.0. The DejaVuSans (used for the virtual keyboard) license can be viewed here.
  • The current UI design has been adapted from Moblintouch theme's SVGs and is licensed under the terms of the LGPLv2.1.

Code of Conduct

In the interest of fostering an open and welcoming community, we as contributors and maintainers need to ensure participation in our project and our sister projects is a harassment-free and positive experience for everyone. It is vital that all interaction is conducted in a manner conveying respect, open-mindedness and gratitude.

Please consult the latest Code of Conduct.

Contributors

This project exists thanks to all the people who contribute. [Become a contributor].

Backers

Thank you to all of our backers! πŸ™ [Become a backer]

Sponsors

Special thanks to all of our sponsors, past and present. Support this project by [becoming a sponsor].

Here are our top current sponsors. Please click through to see their websites, and support them as they support us.

kivy's People

Contributors

akshayaurora avatar aspidites avatar bob-the-hamster avatar cbenhagen avatar cheaterman avatar clayote avatar dennda avatar dessant avatar dexerbr avatar geojeff avatar gottadiveintopython avatar hansent avatar inclement avatar julian-o avatar keyweeusr avatar kived avatar knappador avatar kovak avatar lauszus avatar lilyfoote avatar matham avatar merriam avatar misl6 avatar pythonic64 avatar thopiekar avatar tito avatar tshirtman avatar udiboy1209 avatar voen avatar zen-code avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kivy's Issues

Label/Button draw small glitch when text kwarg is None

Not that bad, but I wouldn't really expect it, so I'd say it's a bug:

See the following example:
Also works with Label of course (but then you need to choose a non-black BG color to see it).

from kivy.app import App
from kivy.uix.button import Button

class MyApp(App):
def build(self):
return Button()

MyApp().run()

support callback

Today, we binding automaticly property to an expression.

How about statement on a callback ? For on_touch_*, on_press, on_release, on_, this could be just a callback with a statement.

Versionning of portable-deps-osx

The osx portable-deps contain hardcoded version number.
Search and replace all version number with a tag like {{VERSION}}
Then update build.py to search & replace with the current version

support cls and id rules

Today, the style will apply as soon as the class is created. It should be after all the parameters set

Compiler cache error with Color

Currently, we automatically ignore context if they are no change, and the flag update only the branch touched by the changes.

But if you have this scheme:

  • Canvas A
    • Canvas B
      • Color white
      • Rectangle
    • Canvas C
      • Color white
      • Rectangle

In Canvas C, color white will be flagged as GI_IGNORE.
If the canvas B add a color, or change his color, only canvas B and A are flagged as "need to be updated". But C should be tagged too, because the color left after the rendering of Canvas B will be not ok for Canvas C.

support template

So, at the end, we will have in the language : Application (root widget), Rules (for styling), Templates (reusable tree).

The templates part must be customized. I'm suggesting something like :

  Beer@Widget:
    Label:
      text: data.title
    Label:
      text: data.description

And data is a dictionnary binded at creation :

  my_custom_beer = Builder.build_template('Beer', {...})

Canvas missing needs_redraw property

Actually, we cannot know if a canvas need redrawing or not.
The update flag is set, but never unset.

If we unset it on draw, nothing is showed on the screen...

Support id

We should be able to use id, same as self. and root.
Ids must be local to a template, or global to an application.

textbox widget

A very good textbox widget with :

  • multiline support
  • clipboard support
  • keyboard shortcut support

documentation

make a documentation for average users :
-add "self" in fonctions definition

make documentation for Color
add some example

Fix MacMultitouchSupport on OSX

[ERROR ] [Input ] MacMultitouchSupport is not supported by your system
Traceback (most recent call last):
File "/Users/dennda/dev/kivy/kivy/input/providers/init.py", line 24, in
from kivy.input.providers.mactouch import *
File "/Users/dennda/dev/kivy/kivy/input/providers/mactouch.py", line 24, in
MultitouchSupport = ctypes.CDLL()
TypeError: init() takes at least 2 arguments (1 given)

support import

Be able to load external code from the definition langage

Enhance App class

  • add properties for title, description, author, website
  • autoload the kv associated to the app

Don't use reversed() in on_touch_*

This reversed was needed before... but rereading this make me think we don't need it anymore.
Since we have 2 tree, the widgets tree can be already ordered for touch event, since the graphics tree can be ordered for drawing.
So... ? :)

Fix Kivy Website Navigation Panel

The navigation panel on http://kivy.org/docs/# is not scrollable and for some screen resolutions the quick search box on the bottom of the navigation panel is hidden from view. Only when the user uses the Full Screen mode of Mozilla Firefox is the quick search box visible. This problem does not affect Chromium Web Browser since it has more web page area on display.
The resolution of my laptop on which I noticed this issue is 1366x768.

Scatter Example Color Issue

When I run the app_scatter example, the image is colored incorrectly. Happens as soon as I click. So I guess the color from the circle around the cursor is set, but then when the image is drawn it's not set back to white or something like that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.