Nicegui widgets: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (21 intermediate revisions by the same user not shown) | |||
| Line 7: | Line 7: | ||
|title=nicegui_widgets | |title=nicegui_widgets | ||
|url=https://github.com/WolfgangFahl/nicegui_widgets | |url=https://github.com/WolfgangFahl/nicegui_widgets | ||
|version=0.0 | |version=0.30.0 | ||
|description=nicegui widgets, tools and base classes | |description=nicegui widgets, tools and base classes | ||
|date= | |date=2025-11-09 | ||
|since=2023-09-12 | |since=2023-09-12 | ||
}} | }} | ||
= Motivation = | |||
Standarize [https://nicegui.io/ nicegui] App appearance and add utilities and widgets | |||
= Demo = | |||
http://ngdemo.bitplan.com | |||
= Tutorial = | |||
{{Link|target=Nicegui widgets/Tutorial}} | |||
{{pip|ngwidgets}} | {{pip|ngwidgets}} | ||
= Features = | = Features = | ||
* standard project layout with README, License, pyproject.toml, github actions and scripts for installation and testing | |||
* layout and menu handling with setup_header, setup_footer and setup_content_div | |||
* background: BackgroundTaskHandler class to allow running long running tasks in a different thread with async/await | * background: BackgroundTaskHandler class to allow running long running tasks in a different thread with async/await | ||
* cmd: WebserverCmd class - makes a command line for single input webservers simpler | * cmd: WebserverCmd class - makes a command line for single input webservers simpler | ||
* color_schema: ColorSchema class - allows to define color schemas by name e.g. "indigo()" | * color_schema: ColorSchema class - allows to define color schemas by name e.g. "indigo()" | ||
* file_selector: FileSelector class - for selecting files from a tree structure such as a directory | * file_selector: FileSelector class - for selecting files from a tree structure such as a directory - in local mode with unrestricted access to the file system | ||
* input_webserver: InputWebserver skeleton class for a single input webserver | * input_webserver: InputWebserver skeleton class for a single input webserver that has a single file to work on | ||
* leaflet: leaflete class wraps https://leafletjs.com/ as a component | * leaflet: leaflete class that wraps https://leafletjs.com/ as a component | ||
* profiler: Profiler class measures time - especially when running tests | * profiler: Profiler class measures time - especially when running tests | ||
* progress: Progressbar subclasses NiceguiProgressbar and TqdmProgressbar allow to use a tdqm or nicegui ui_linear_progress in an exchangeable/compatible way | * progress: Progressbar subclasses NiceguiProgressbar and TqdmProgressbar allow to use a tdqm or nicegui ui_linear_progress in an exchangeable/compatible way | ||
* webserver: NiceGuiWebserver class for a default webserver with header/menu/footer and some utility functions WebserverConfig to configure copyright/version links and default_port | * webserver: NiceGuiWebserver class for a default webserver with header/menu/footer and some utility functions WebserverConfig to configure copyright/version links and default_port | ||
* version info handling | |||
* about dialog | |||
* [https://github.com/WolfgangFahl/nicegui_widgets/issues/18 users]: Users class for user authentication/credential handling | * [https://github.com/WolfgangFahl/nicegui_widgets/issues/18 users]: Users class for user authentication/credential handling | ||
* remote debugging support | |||
* aggrid ListOfDictGrid | |||
* dictedit | |||
* [https://github.com/zauberzeug/nicegui/discussions/2148 tristate module] | |||
* [https://github.com/zauberzeug/nicegui/discussions/1618 nicegui solutions bazaar] | |||
* [https://github.com/WolfgangFahl/nicegui_widgets/issues/62 automatic apache server config generation] | |||
== remote debugging support == | |||
[https://pypi.org/project/pydevd/pydevd] remote debugging is supported | |||
=== relevant command line arguments === | |||
<source lang='bash'> | |||
--debugServer DEBUGSERVER | |||
remote debug Server | |||
--debugPort DEBUGPORT | |||
remote debug Port | |||
--debugRemotePath DEBUGREMOTEPATH | |||
remote debug Server path mapping - remotePath - path | |||
on debug server | |||
--debugLocalPath DEBUGLOCALPATH | |||
remote debug Server path mapping - localPath - path on | |||
machine where python runs | |||
</source> | |||
=== example remote debug session start === | |||
using https://github.com/BITPlan/diagrams project as an example | |||
The remote IDE environment is an Eclipse workspace on a Mac in this example so /Users/wf/Documents/pyworkspace is the root of the source code tree remotely | |||
The local environment is an Ubuntu server machine where the code resides in /home/wf/source/python | |||
<source lang='bash'> | |||
# tunnel port 5678 | |||
ssh -R 5678:localhost:5678 server | |||
cd source/python/diagrams | |||
git pull | |||
pip install . | |||
# check that the remote debugging command line arguments are available | |||
diagrams -h | |||
# start your remote debugging in the IDE first | |||
# e.g. with the Eclipse menu entry pydev/Start debug server | |||
diagrams -s --debugServer localhost --debugRemotePath=/Users/wf/Documents/pyworkspace/ --debugLocalPath=/home/wf/source/python/ --debug | |||
</source> | |||
In you IDE there should now be a break in the webserver.py class at: | |||
<source lang='python'> | |||
print(f"command line args are: {str(sys.argv)}") | |||
</source> | |||
= Links = | = Links = | ||
https://nicegui.io/ | https://nicegui.io/ | ||
Latest revision as of 16:41, 9 November 2025
OsProject
| OsProject | |
|---|---|
| id | nicegui_widgets |
| state | active |
| owner | WolfgangFahl |
| title | nicegui_widgets |
| url | https://github.com/WolfgangFahl/nicegui_widgets |
| version | 0.30.0 |
| description | nicegui widgets, tools and base classes |
| date | 2025-11-09 |
| since | 2023-09-12 |
| until | |
Motivation
Standarize nicegui App appearance and add utilities and widgets
Demo
Tutorial
Installation
pip install ngwidgets
# alternatively if your pip is not a python3 pip
pip3 install ngwidgets
# local install from source directory of ngwidgets
pip install .
upgrade
pip install ngwidgets -U
# alternatively if your pip is not a python3 pip
pip3 install ngwidgets -U
Features
- standard project layout with README, License, pyproject.toml, github actions and scripts for installation and testing
- layout and menu handling with setup_header, setup_footer and setup_content_div
- background: BackgroundTaskHandler class to allow running long running tasks in a different thread with async/await
- cmd: WebserverCmd class - makes a command line for single input webservers simpler
- color_schema: ColorSchema class - allows to define color schemas by name e.g. "indigo()"
- file_selector: FileSelector class - for selecting files from a tree structure such as a directory - in local mode with unrestricted access to the file system
- input_webserver: InputWebserver skeleton class for a single input webserver that has a single file to work on
- leaflet: leaflete class that wraps https://leafletjs.com/ as a component
- profiler: Profiler class measures time - especially when running tests
- progress: Progressbar subclasses NiceguiProgressbar and TqdmProgressbar allow to use a tdqm or nicegui ui_linear_progress in an exchangeable/compatible way
- webserver: NiceGuiWebserver class for a default webserver with header/menu/footer and some utility functions WebserverConfig to configure copyright/version links and default_port
- version info handling
- about dialog
- users: Users class for user authentication/credential handling
- remote debugging support
- aggrid ListOfDictGrid
- dictedit
- tristate module
- nicegui solutions bazaar
- automatic apache server config generation
remote debugging support
[1] remote debugging is supported
relevant command line arguments
--debugServer DEBUGSERVER
remote debug Server
--debugPort DEBUGPORT
remote debug Port
--debugRemotePath DEBUGREMOTEPATH
remote debug Server path mapping - remotePath - path
on debug server
--debugLocalPath DEBUGLOCALPATH
remote debug Server path mapping - localPath - path on
machine where python runs
example remote debug session start
using https://github.com/BITPlan/diagrams project as an example
The remote IDE environment is an Eclipse workspace on a Mac in this example so /Users/wf/Documents/pyworkspace is the root of the source code tree remotely The local environment is an Ubuntu server machine where the code resides in /home/wf/source/python
# tunnel port 5678
ssh -R 5678:localhost:5678 server
cd source/python/diagrams
git pull
pip install .
# check that the remote debugging command line arguments are available
diagrams -h
# start your remote debugging in the IDE first
# e.g. with the Eclipse menu entry pydev/Start debug server
diagrams -s --debugServer localhost --debugRemotePath=/Users/wf/Documents/pyworkspace/ --debugLocalPath=/home/wf/source/python/ --debug
In you IDE there should now be a break in the webserver.py class at:
print(f"command line args are: {str(sys.argv)}")