https://github.com/nucleic/enaml Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Changelog * Solutions + By Size + Enterprise + Teams + Compare all + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} nucleic / enaml Public * * Notifications * Fork 128 * Star 1.3k Declarative User Interfaces for Python enaml.readthedocs.io/en/latest/ License View license 1.3k stars 128 forks Star Notifications * Code * Issues 35 * Pull requests 6 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights nucleic/enaml This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 5 branches 60 tags Code * Clone HTTPS GitHub CLI [https://github.com/n] Use Git or checkout with SVN using the web URL. [gh repo clone nuclei] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @MatthieuDartiailh MatthieuDartiailh cis: update pypa action ... 85e8dd2 Aug 19, 2022 cis: update pypa action 85e8dd2 Git stats * 2,610 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github cis: update pypa action Aug 19, 2022 docs docs: Fix a few typos Jul 15, 2022 enaml Revert "Revert "core: use atom.add_member to add members after a clas... Aug 19, 2022 examples docs: Fix a few typos Jul 15, 2022 tests tests: make qt tests more meaningful Aug 12, 2022 tools tools: fix pygments extension pyproject.toml Mar 30, 2022 .appveyor.yml appveyor: avoid confusing qtpy with env vars Mar 11, 2022 .coveragerc add a coverage config to exclude the icon generation file Aug 12, 2022 .gitignore gitignore: ignore the dynamically generated version file Jun 13, 2022 .gitmodules tools: adding sublimetext as a subrepo Nov 10, 2020 .readthedocs.yaml update read the docs configuration file Dec 28, 2021 LICENSE setup: fix typo in pyproject.toml Apr 1, 2022 MANIFEST.in MANIFEST: update sdist content Dec 1, 2019 README.rst Typo Aug 18, 2022 codecov.yml core: replace byteplay with bytecode Feb 12, 2020 pyproject.toml requires qtpy>=2.1 for all Qt versions since otherwise QT6 variables ... Aug 11, 2022 releasenotes.rst set release date Aug 19, 2022 setup.py move install information to pyproject.toml Mar 30, 2022 test_requirements.txt tests: simplify drag and drop tests Jun 10, 2022 View code [ ] Welcome to Enaml What you get What it can do for you Supported Versions Learn More Examples Employee Tutorial Button Ring Dock Item Alerts README.rst Welcome to Enaml Build Status Appveyor Build Status [badge] Code Coverage Status [badge] 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 prototype 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. o You can incorporate Python code directly in the view layer. o As your GUI design evolves, the constraints engine can adapt the layout. o 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: https://img.youtube.com/vi/ycFEwz_hAxk/2.jpg S. Chris Colbert (@sccolbert) presents at Enthought 2012. https://img.youtube.com/vi/G5ZYUGL7uTo/1.jpg 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: http://enaml.readthedocs.io/en/latest/_images/tut_employee_layout.png 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. http://enaml.readthedocs.io/en/latest/_images/ex_button_ring.png 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. http://enaml.readthedocs.io/en/latest/_images/ex_dock_item_alerts.png Check out the documentation for more examples. About Declarative User Interfaces for Python enaml.readthedocs.io/en/latest/ Topics python enaml Resources Readme License View license Stars 1.3k stars Watchers 52 watching Forks 128 forks Releases 13 Release 0.15.2 Latest Aug 19, 2022 + 12 releases Sponsor this project Sponsor Learn more about GitHub Sponsors Packages 0 No packages published Contributors 31 * @sccolbert * @MatthieuDartiailh * @blink1073 * @frmdstryr * @Julian-O * @brett-patterson * @bburan * @adigitoleo * @dwillmer * @ericdill * @WarrenWeckesser + 20 contributors Languages * Python 93.3% * C++ 6.1% * Other 0.6% Footer (c) 2022 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.