Welcome to Enaml
Enaml is a programming language and framework for creating professional quality user interfaces with minimal effort. Enaml combines a domain specific declarative language with a constraints based layout system to allow users to easily define rich UIs with complex and flexible layouts. Enaml applications can be run on any platform which supports Python and Qt.
A few highlights of the framework:
A declarative language which extends the grammar of Python
A set of operators which automatically track runtime dependencies
A layout system which uses symbolic constraint declarations
A design which encourages model-view separation
A well documented and easy to follow code base
The first stop for all those new to Enaml. This section includes an introduction to Enaml, installation instructions, and all the information needed to write your first Enaml application.
The stuff that wasn’t covered in Getting Started. This section provides in-depth documentation on a wide range of topics you are likely to encounter when developing production applications with Enaml. Look here for details on Enaml’s scoping rules, aliases, templates, best practices, and more.
Hackers welcome! This section offers a collection of topics covering the low level details of Enaml’s architecture and implementation. Look here if you want to understand how Enaml works internally, or if you are interested in extending Enaml for your own custom needs.
“Just show me the code!” This section provides an easy-to-browse alternative to running Enaml’s examples from the command line. We’ve even included screenshots!
Frequently Asked Questions
If you think you may not be the only one to have thought a thought, you are probably right. Look here to see if your question has already been asked, then take solace in the realization that you are not alone.
“Use the source, Luke.” When all else fails, consult the API docs to find the answer you need. The API docs also include convenient links to the most definitive Enaml documentation: the source.
Enaml includes a few console scripts to assist in development.
Notes regarding the development of Enaml such as coding conventions and C extensions writing.