Comments (1)
That's an interesting idea! I fiddled around a bit and tried to support lists, dicts and enums. But it is rather complicated to get it working. And the desired behavior doesn't seem to be completely obvious. E.g. should on_change
yield the selected enum item or only its value? Similarly the bound model could contain an enum item, a name or a value.
Therefore, I looked into your workaround, simplified it a bit and would leave it here as a recipe for connecting enums with choice elements like radio, select and toggle:
from enum import Enum, auto
from nicegui import ui
class Choice(Enum):
a = auto()
b = auto()
c = auto()
model = type('', (), {'x': Choice.a})
ui.select([option.name for option in Choice], on_change=lambda: print(model.x, flush=True)) \
.bind_value(model, 'x',
forward=lambda name: Choice[name],
backward=lambda item: item.name)
ui.run()
The on_change
handler is just for showing the updated model values.
from nicegui.
Related Issues (20)
- Plotly chart changes position after updating the chart. HOT 10
- ⚠️ `ui.upload` File upload stops at 99.9% HOT 1
- 3D visualization not reliable HOT 15
- From 188c81b on some pages load extremely slowly HOT 9
- I use pyinstaller to generate .exe file find question, how to solve it?
- Setting ui.number min/max property is failing after version nicegui-1.4.19 HOT 1
- When executing the run_method , a KeyError error occurs. HOT 6
- Native mode [Windows] : Stay on top option
- Firefox cannot establish the websocket connection but other browsers and firefox private browsing can. HOT 8
- app.storage.user in unit tests throws error. HOT 1
- confilict with multiprocessing when running in native mode? HOT 1
- Infinite scroll example errors HOT 5
- Nginx subpath example doesn't redirect correctly when navigating to subpage with trailing slash
- ui.plotly chart randomly collapses / shrinks HOT 2
- Leaflet always uses the full width
- Troubles while periodically updating the 3D scene HOT 6
- Native mode and resizability of the window HOT 4
- Text in input and select components is not aligned to each other HOT 5
- ui.input validation will remain space after it's value was corrected HOT 3
- Select fails to change value on first try. HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nicegui.