We are excited to announce the release of NiceGUI 1.2.0! While including many great new features, we want to specially highlight the introduction of a “native” mode which allows Electron-like capabilities by not opening a browser but a native window on your desktop. Of course this can also be packaged into an executable.
Breaking Changes
The implementation of ui.table
is no longer based on AG Grid but rather on QTable from Quasar which is in line with the other components. The AG Grid element is still available through ui.aggrid
(see #370 and #500 for details; by @dclause, @falkoschindler, @Diegiwg and @rbeeli).
All web dependencies have been upgraded to their most recent stable version (with the exception of Mermaid, which is at 9.x instead of 10.x due to technical reasons). In general, this should not change the behavior of NiceGUI applications (#524 by @dclause and @falkoschindler).
The upgrade of TailwindCSS can, however, change the interpretation of contradicting Tailwind classes: The effective class order has been nondeterministic and using contradicting classes was dangerous and discouraged by the Tailwind developers. Now the order is deterministic such that the result does not change when, e.g., moving the element around. But this could change the behavior of your app if it relies on a certain interpretation order. See this very informative post and this comment for more information.
Other Features and Enhancements
- make NiceGUI the Electron of Python by introducing
ui.run(native=True)
which will open a desktop window instead of a browser tab (#89, #558, #519 by @eli-kha, @rodja, @al-eax, @smojef, @bobwatcherx, @hditano, @ItsCubeTime and @falkoschindler) - add point cloud support for 3D scenes (#545 by @kielnino)
- add support for scoped slots (#514, #501 by @dclause and @falkoschindler)
- provide a global exception handler (#289, #445 by @smojef and @falkoschindler)
- allow clearing the content of a
ui.log
element (#414 by @Allen-Taylor and @falkoschindler) - allow looping
ui.audio
andui.video
(#555 by @chook100 and @falkoschindler)
Bug Fixes
- make elements that are ignored by
ui.keyboard
configurable (#460 by @MrTLMWD and @falkoschindler) - support 32-bit Windows using the built-in json package instead of orjson (#518, #532 by @rbeeli, @ghuserlb, @rodja and @falkoschindler)
Documentation
- improve documentation for authentication demo (#527 by @Shmuma and @rodja)
- improve explanation of menu placement (#541 by @rodja)
- improve deployment documentation uncovered by experiments with Heroku (#469 by @krummja and @rodja)
- improve script executor demo by fixing
asyncio.create_subprocess_exec
for Windows (#486 by @wielandb, @spehj and @rodja) - improve NGINX subpath demo (#245 by @rodja)