Release Notes#
v2.11.0#
Released: 2025-01-10
utilities.run_subprocess_with_callback()
callback
exceptions will be suppressed.
v2.10.0#
Released: 2025-01-08
New utility function
utilities.run_subprocess_with_callback()
.
v2.9.1#
Released: 2025-01-06
Change
pyproject.toml
from Poetry to Setuptools build backend.
v2.9.0#
Released: 2024-12-28
New Hooks:
provide_context()
,use_context()
.Styling
style
prop"align"
can take an AlignmentFlag.Deprecate Hook
use_callback()
in favor ofuse_memo()
.
v2.8.1#
Released: 2024-12-18
v2.8.0#
Released: 2024-12-13
New Base Element
ScrollBar
.New
QtWidgetElement
propon_mouse_wheel
.
v2.7.1#
Released: 2024-12-12
Bugfix
VScrollView
HScrollView
on_resize
event handler will not interfere with the resizing behavior ofQScrollArea
.
v2.7.0#
Released: 2024-12-10
New Hook
use_memo()
.Bugfix
QtWidgetElement
children. Fix bug children disappeared when re-rendering with no changes.
v2.6.1#
Released: 2024-11-09
Bugfix
QtWidgetElement
style
prop will not be mutated.
v2.6.0#
Released: 2024-11-02
Label
new proptext_format
.
v2.5.0#
Released: 2024-10-10
New Hook
use_callback()
.Hook
use_state()
setter function will be stable across renders.
v2.4.0#
Released: 2024-10-06
TabView
bugfix
v2.3.0#
Released: 2024-10-05
TextInput
new propcompleter
.QtWidgetElement
new argument_focus_open
.QtWidgetElement
on_key_down
andon_key_up
events will propagate to parent.edifice.extra
module does not re-export extra Elements because that requires additional dependencies.
v2.2.0#
Released: 2024-09-29
Inspector style bugfix.
v2.1.0#
Released: 2024-09-27
Window
new props_size_open
,full_screen
.Window
renamed argumenton_open
to_on_open
.WindowPopView
new props_size_open
,full_screen
.
v2.0.1#
Released: 2024-09-22
Delete method
TableGridView
row()
.New Element
TableGridRow
.TableGridView
props type change fromlist
totuple
.Label
delete propeditable
.Delete deprecated
View
andScrollView
.Delete deprecated
"margin"
alias for"padding"
in Views.Remove
style
propSequence
type. (style
must be adict
, not alist[dict]
.)Dependency
PySide6-Essentials
tested.New Hook
use_stop()
.Window
WindowPopView
new arg_size_open
.
with TableGridView() as tgv:
with tgv.row():
Label("row")
with TableGridView():
with TableGridRow():
Label("row")
v1.5.0#
Released: 2024-09-20
New Base Element
WindowPopView
.
v1.4.0#
Released: 2024-09-13
Hook
use_state()
new feature initializer function.
v1.3.0#
Released: 2024-09-12
New Hook
use_hover()
.
v1.2.0#
Released: 2024-09-10
Window
new propon_open
.New utility functions
utilities.theme_is_light()
,utilities.palette_edifice_light()
,utilities.palette_edifice_dark()
.Delete deprecated method
App.set_stylesheet
.
v1.1.0#
Released: 2024-09-05
SpinInput
new propsingle_step
.
v1.0.0#
Released: 2024-08-27
The API and features are pretty stable and reliable now, so this is version 1.
v0.8.1#
Released: 2024-08-27
Bugfix for the Harmonic Oscillator example.
Change Sphinx theme to
pydata-sphinx-theme
for documentation.
v0.8.0#
Released: 2024-07-27
New Element:
NumpyImage
.Inspector improvements and debugging.
Slider
on_change
event handler prop can be a future.children
prop type changed totuple[Element, ...]
.This should get rid of the lint warnings about the argument default
[]
value.Deprecate
View
,ScrollView
.- Replace
View
with: - Replace
ScrollView
with:
- Replace
We are eliminating the layout= "row" | "column" | "none"
prop because it
never worked as a prop. If the value of the layout prop was
changed then the layout of the View would not change. To render a
View(layout="row")
and then replace it with a
View(layout="column")
, it was necessary to add
unique set_key()
so that the reconciliation algorithm would recognize
that the Views needed to be destroyed and recreated. This behavior was
buggy and surprising and now it’s gone.
ButtonView
is now a subclass of HBoxView
.
For column layout, put a VBoxView
inside the ButtonView
.
We have added functions View()
, ScrollView()
which behave like the
old elements of the same name, so that old code will still work, probably.
These functions have deprecation warnings at the type level and at runtime,
and they will be removed in the future.
v0.7.4#
Released: 2024-06-14
component()
composition withchildren
props andchild_place()
.
v0.7.3#
Released: 2024-06-12
View
layout="none"
remove minimum size 100×100.
v0.7.2#
Released: 2024-06-11
Bugfix
View
layout="none"
added children become visible.
v0.7.1#
Released: 2024-06-06
Prop
padding
forView
layout Elements.
v0.7.0#
Released: 2024-06-04
RadioButton
fully declarativechecked
prop.CheckBox
fully declarativechecked
prop.
The state of RadioButton
and CheckBox
is now dependent only
on the checked
prop.
This means that RadioButton
“grouping” is now fully independent
of the parent widget, and only depends on how the checked
prop
is calculated.
v0.6.2#
Released: 2024-05-22
SpinInput
bugfix: Set value after min/max.
v0.6.1#
Released: 2024-05-22
SpinInput
bugfix: Blockon_change
signal while setting min and max value.
v0.6.0#
Released: 2024-05-21
- Breaking changes in
Dropdown
. Option text is not editable.
Option selection is index based, not text-based.
- Breaking changes in
v0.5.6#
Released: 2024-05-18
New base element
TextInputMultiline
.Label
prop text must be typestr
.
v0.5.5#
Released: 2024-04-30
bugfix
QtWidgetElement
on_resize
event handler prop.
v0.5.4#
Released: 2024-04-29
CommandType
non-private for writing customQtWidgetElement
classes.QtWidgetElement
on_resize
event handler prop.enable_mouse_scroll
prop forDropdown
.
v0.5.3#
Released: 2024-04-22
v0.5.2#
Released: 2024-04-01
New Hook
use_effect_final()
During
use_async()
CancelledError
, allow callinguse_state()
setter functions without causing re-render of an unmounting component.
v0.5.1#
Released: 2024-03-27
Big reductions in memory leaking from
use_state()
Hook.Bugfix: After
App.stop()
, don’t run new renders, also don’t schedule newuse_async()
calls.
v0.5.0#
Released: 2024-03-21
v0.4.5#
Released: 2024-03-21
v0.4.4#
Released: 2024-03-16
Inspector is working now with
use_state()
.Delete
StateManager
andStateValue
.Delete all state rollback features.
v0.4.3#
Released: 2024-03-06
TextInput
bugfix don’tsetText
on every render.Clean up Python dependencies.
v0.4.2#
Released: 2024-02-26
use_effect()
allways run whendependencies
isNone
.extra.PyQtPlot
disable mouse interaction.
v0.4.1#
Released: 2024-02-17
Rending logic correctness and stability improvements.
use_async()
window close Task done bugfix.use_state()
will not re-render if state is__eq__
after update.
v0.4.0#
Released: 2024-02-08
Major changes to App
and the Window
App
App.start_loop()
runs the event loop to completion. It no longer requires the user to run the loop. The user should never callloop.run_forever()
.- New method
App.stop()
Will unmount all Elements.
Will call all
use_effect()
cleanup functions.Will cancel all
use_async()
tasks and wait until they are cancelled.
- New method
Window
Window
is a subclass ofView
and can have multiple children.Window
no longer needs an extraView
child for hot-reloading to work properly.Qt window on_close event causes
App.stop()
.
Bugfixes:
use_effect()
runs after all the render prop updates.
v0.3.7#
Released: 2024-02-06
Breaking change: Hook
use_async_call()
returns canceller function in a tuple.
v0.3.6#
Released: 2024-02-06
Hooks
use_async()
anduse_async_call()
are manually cancellable.
v0.3.5#
Released: 2024-02-03
use_async()
bugfix.
v0.3.4#
Released: 2024-01-31
New Hook
use_async_call()
v0.3.3#
Released: 2024-01-25
Internal improvements and typing-extensions requirement.
v0.3.2#
Released: 2024-01-22
Hooks are preserved during hot-reload.
v0.3.1#
Released: 2024-01-19
Hot-reload improvements and bugfixes.
TableGridView
improvements and bugfixes.
v0.3.0#
Released: 2023-12-19
- New Base Elements:
QtWidgetElement
on_drop
event handler.- Extra Elements
extra.MatplotlibFigure
extra.PyQtPlot
Removed numpy dependency.
Bugfixes in child diffing and reconciliation.
use_effect()
cleanup function can beNone
.Bugfix
use_async()
cancellation of previous task.Base Element
Slider
only allows integer values.Merged Base Elements
Image
andImageAspect
Removed deprecated modules
forms
,plotting
.Hot-reload bugfixes.
v0.2.1#
Released: 2023-11-14
v0.2.0#
Released: 2023-11-13
This version has a lot of breaking changes. We have done essentially the same upgrade that React.js did when they upgraded to function components and Hooks in version 16.8.
component()
render function decorator instead ofComponent
subclass. Renamed oldComponent
toElement
. Deprecated the API for users to inherit fromElement
. Privatized most of theElement
API.Hooks instead of
StateValue
andStateManager
, which are deprecated.New
with
context manager syntax for declaring children instead of the Element__call__
syntax for declaring children.Moved
ButtonView
,FlowView
,ImageAspect
,TableGridView
to Base Elements.Deprecated all Higher-level Components.
Other miscellaneous improvements.
The old API for writing Elements
by inheriting from the Component
class, overriding the render()
function, and calling self.set_state()
has has been deprecated.
A new API
for writing Elements with the component()
decorator and Hooks has replaced the
old API. Most of the old API machinery still exists, but has been hidden
from the public API. If you want to upgrade
old code to this version but don’t want to completely re-write for the new
API, then you can make a few changes and run your old code.
Component
has been renamed toElement
.The
Element
render()
function has been renamed to_render_element()
. Most other methods ofElement
have also been renamed with a prefix underscore. The methodset_state()
is now_set_state()
.The
StateValue
andStateManager
can be imported from moduleedifice.state
.
v0.1.2#
Released: 2023-10-06
PropsDict
type annotations.Documentation and metadata improvements.
v0.1.1#
Released: 2023-09-15
Documentation and metadata improvements.
v0.1.0#
Released: 2023-09-14
Upgrade to PySide6/PyQt6. Deprecate PySide2/PyQt5.
New Base Component
ImageSvg
.Component
Label
new propslink_open
.QtWidgetComponent
new propssize_policy
.Create the main
QEventLoop
before the firstApp
render.Component
Image
propssrc
can be aQtGui.QImage
.Deleted
setup.py
, added Poetrypyproject.toml
.App
new propsqapplication
.New Higher-level Component:
ImageAspect
.New Higher-level Component:
ButtonView
.New Higher-level Component:
FlowView
.New Higher-level Component:
TableGridView
.
v0.0.10#
Released: 2021-07-15
Fix deletion from View and ScrollView.
Add alert and file dialog options.
v0.0.9#
Released: 2021-06-20
Add grid view.
Bug fix with overriding default mouse events.
Add global stylesheets.
Fix label_map.
Add optional QApplication app name in the App constructor.
Fix prop comparison of np arrays.
Add support for keydown and keyup events.
Fix on_change event for textinput.
v0.0.8#
Released: 2021-02-04
Bug fixes for dynamic loading, and clearer error messages for Dropdowns and Sliders.
v0.0.7#
Released: 2021-02-02
Bug fixes for checkboxes and forms.
v0.0.6#
Released: 2021-01-27
Support for asyncio.
v0.0.5#
Released: 2021-01-26
First public release.