Skip to main content

Create modern cross-platform apps in Python using HTML and CSS

Project description

Neutron is ment to be an intuative way of creating GUI applications using HTML, CSS and Python. It is built on top of PyQt6 and uses the QtWebEngine.

You can get started contributing via CONTRIBUTING.md.

Installation

pip install neutron-web

Example

For a template project see TEMPLATE or see the to-do app.

Usage

The Neutron api is designed to be very similar to the JavaScript DOM api. You can imagine the Window class as the document object in JavaScript (altough it is still missing a lot of features), and the HTMLElement class, which is the base class for all HTML elements, as the javascript DOM Element object. The HTMLElement class supports most of the attributes the DOM Element object in JavaScript has but is still missing some methods. Ideally you should be able to use Neutron as you would use the JavaScript DOM api, altough there are some differences.

Neutron features

Neutron.event(function : Callable)) -> str

Use this function when passing a python function to an event listener or javascript method that requires a callable as parameter. Return the new javascript "bridge" function as str.

Window(title: str, css: str, position: Tuple[int, int], size: Tuple[int, int]) -> Window

Create a window.

Window.run_javascript(javascript: str) -> str

Evaluate JavaScript code.

Window.display(file: str, html: str, pyfunctions: List[Callable], encoding: str) -> None

Used to parse your html code. You run it before showing the window. It takes a path to your htlm file or html code (if file is not provided), a list of python functions and an encoding. The encoding is the encoding of your html file. The python functions are the functions you want to able to directly call from your html file. See the to-do app example.

Window.show() -> None / Window.close() -> None

Show and close the window.

Building your project

To build a Neutron project you first need pyinstaller, install pyinstaller throught pip: pip install pyinstaller. Then run the script below in your command prompt/terminal. You can also use other programs to build your project such as py2exe if you prefer.

Note: If you are on linux use ":" instead of ";"

pyinstaller YOUR_PYTHON_FILE.py --noconsole --onefile --add-data="YOUR_HTML_FILE.html;." --add-data="YOUR_CSS_FILE.css;."

You don't need to use --add-data if your project doesn't have a CSS or HTML file

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neutron_web-0.5.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

neutron_web-0.5-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file neutron_web-0.5.tar.gz.

File metadata

  • Download URL: neutron_web-0.5.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.11

File hashes

Hashes for neutron_web-0.5.tar.gz
Algorithm Hash digest
SHA256 bbb6aa69ecec3f93ddf437c7c3106ba19ffc35f6c24e047d16f90a24cf053808
MD5 408ca0744ed596fbc6041e0d444e797f
BLAKE2b-256 8425849f2645feb69c26bc7c3e109173f7950e910060cf162c51074e00efc780

See more details on using hashes here.

File details

Details for the file neutron_web-0.5-py3-none-any.whl.

File metadata

  • Download URL: neutron_web-0.5-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.11

File hashes

Hashes for neutron_web-0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4936ae4bbb741cd3d52416f042d4a687caa49e4146c72f6fcaaca14eefebae01
MD5 e505f9aaac293687e88dfd56daf80814
BLAKE2b-256 7958e1da24849322cefd0991e1d533c7698a44125b5edd28842c928828ece685

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page