Coder Social home page Coder Social logo

pbehnke / enaml Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nucleic/enaml

0.0 0.0 0.0 39.49 MB

Declarative User Interfaces for Python

Home Page: http://enaml.readthedocs.io/en/latest/

License: Other

Python 93.35% C++ 6.06% C 0.37% Emacs Lisp 0.14% Vim Script 0.08%

enaml's Introduction

Welcome to Enaml

Build Status

Appveyor Build Status

image

Code Coverage Status

image

Documentation Status

PyPI version

Enaml is a programming language and framework for creating professional-quality user interfaces with minimal effort.

What you get

  • A declarative programming language, with a Pythonic flavour.
  • Dozens of widgets, ready to go out-of-the-box (built on Qt).
  • A constraints-based layout engine (built on Kiwi).
  • Integration with a data model tool (built on Atom).
  • An (optional) editor to allow you to see what the results will look like, as you type your code.
  • A well-documented and easy-to-follow code base, plus documentation with plenty of worked examples.
  • Language definitions for a number of popular editors.

What it can do for you

  • Build native GUI applications for a range of platforms
    • Quick and simple or complex and specialised.
    • See the structure of your GUI at a glance.
  • Let you rapidly protoype new GUIs interfaces.
    • Intelligently layout your GUI, using symbolic constraints.
    • It automatically adapts for different platforms, different window sizes.
    • Tell the layout engine what your priorities are for layout, without having to count pixels.
  • Encourages easy-to-maintain code:
    • The GUI can detect updates in the model, and refresh its widgets automatically, without low-level code.
    • Clean separation between your model and view, while keeping your controller code simple.
      • You can incorporate Python code directly in the view layer.
      • As your GUI design evolves, the constraints engine can adapt the layout.
      • Object-Oriented design allows you to reuse parts of your GUI in other parts of your projects.
  • Let you customise a GUI for your particular needs.
    • Integrates with your Python code.
    • Include style-sheets to change the appearance across all, or part, of your application quickly.
    • Extend the available widgets or build your own.

Supported Versions

Enaml applications can be run on any platform which supports Python (3.6+). The Qt backend requires Qt (5.9+, see https://doc.qt.io/qt-5/supported-platforms.html).

This includes Linux, Windows, MacOSX, Android and iOS. (Automated testing of Enaml runs on Linux, Windows and MacOSX.)

Enaml is licensed under the Modified BSD License.

Learn More

The Getting Started chapter is a good first step to learn more. It includes installation instructions.

Watch some introductory talks about Enaml and what it can do:

image

S. Chris Colbert (@sccolbert) presents at Enthought 2012.

image

Tom Stordy-Allison (@tstordyallison) presents at Pycon UK 2016.

The Enaml documentation includes all the details, including useful examples.

You can ask questions on the Enaml Google Group or with the Enaml tag on StackOverflow.

For version information, see the release notes.

Examples

The Enaml documentation includes many fully-functioning code samples of how to use Enaml. They range from simple demonstrations of how a widget is used, to advanced explorations of the customisability of Enaml GUIs.

Employee Tutorial

The Employee Tutorial shows how constraints and validators can be used to create easy-to-use and professional-looking applications:

image

Button Ring

The Button Ring Example goes the other way. The result is neither professional-looking nor easy-to-use, but it shows the power and flexibility of constraints-based layout - it might be silly, but this could not be achieved with typical layout systems.

image

Dock Item Alerts

The Dock Item Alerts Example shows some of the customisability of the appearances of an Enaml application. This application's appearance is based on Visual Studio 2010 style, with dockable items, but has some customisations based on the importance of the alerts being shown.

image

Check out the documentation for more examples.

enaml's People

Contributors

sccolbert avatar matthieudartiailh avatar blink1073 avatar julian-o avatar frmdstryr avatar brett-patterson avatar warrenweckesser avatar dwillmer avatar ericdill avatar jf--- avatar nmichaud avatar rogererens avatar andiecker avatar rkern avatar pbehnke avatar nweston avatar jwiggins avatar corranwebster avatar bburan avatar gabrielcnr avatar jminardi avatar mikkkee avatar djmattyg007 avatar tillsten avatar timgates42 avatar nasefbasdf avatar

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.