Skip to main content

Nion UI framework.

Project description

Introduction

This is a UI library that can run with a pyqt, PySide2, or nionui-tool backend.

Changelog (nionui)

0.6.0 (2021-11-10)

  • Add ability to set color/font/word_wrap on declarative UI labels.

  • Enable strict typing on entire library.

  • Drop support for Python 3.7, enable support for Python 3.10.

  • Add methods to create persistent value models.

  • Allow subclasses to override persistent value behavior.

  • Configure stack widgets to expand/contract as content changes.

  • Fix issue with declarative label width.

  • Extend declarative components to make it easier to implement all-in-one handler+view.

  • Improve handling of focus in dock widgets.

  • Add divider and draw canvas items and declarative divider.

  • Standardize to use a single event loop managed by Application.

  • Add canvas item slider.

0.5.2 (2021-05-26)

  • Fix radio button grouping issue.

  • Improve font scaling behavior on Windows when running PyQt or PySide.

  • Add a window.activate method.

  • Expand action capabilities and be able to match key sequences.

  • Add additional border color support for declarative images.

  • Add icon based declarative radio buttons.

  • Fix issue with lists making the selection visible.

  • Remove menus from utility windows (affects Windows and Linux).

  • Fix case of preference dialog when no preference panels are registered.

0.5.1 (2021-04-12)

  • Default SVG now uses fastest compression rather than best (see nionswift-642).

0.5.0 (2021-03-12)

  • Fix some drawing inconsistencies during splitter dragging.

  • Minor improvements to drawing performance.

  • Fix potential crash when closing canvas items with threads.

  • Add window file path support to Window.

  • Add support for directly getting last or current keyboard modifiers.

  • Only change canvas item focus when no key modifiers are enabled.

  • Add menu methods for adding only if enabled and checking if enabled.

  • Expand action architecture to support parameters and results.

  • Require sizing to be set by the canvas item (backwards incompatible).

0.4.5 (2021-02-02)

  • Add color dialog support, a color well widget, and some color utility functions.

0.4.4 (2020-12-07)

  • Execute context menus actions by queue to fix crashes.

0.4.3 (2020-11-13)

  • Extend declarative list box to support item tool tips and context menu.

  • Add mechanism to request window close from within event loop.

0.4.2 (2020-11-06)

  • Add ability to determine whether a canvas item is interacting with user.

  • Add ability to add actions to context menus.

  • Improve look of pose dialog.

0.4.1 (2020-09-03)

  • Improve capabilities of window closing workflow.

  • Fix issues with file dialogs in PyQt version.

0.4.0 (2020-08-31)

  • Add support for declarative pop-up window (preliminary).

  • Improve key handling in list widget.

  • Improve handling of slider value to avoid update cycles in multiple sliders bound to same value.

  • Spacing in item-bound rows/columns now works.

  • Add a declarative image widget.

  • Allow custom bindings in declarative handlers.

  • Allow binding to push button and check box text content.

  • Add support for declarative polymorphic components using get_resource and examples.

  • Add support for declarative list box.

  • Add support for specifying expanding declarative items (horizontal/vertical-size-policy).

  • Add show_ok_dialog and show_ok_cancel_dialog methods to application class.

  • Add run_ui to application for running simple declarative windows.

  • Add functions for opening file dialogs without a window.

  • Add support for adjusting menus at the application level.

  • Add function to truncate string to pixel width.

  • Add color/font methods to eliminate need for stylesheet properties.

  • Improve handling of scrolling when changing list selection.

  • Add UI function to retrieve default cursor tolerance for hit testing.

  • Add basic notification dialog when actions report warnings/errors.

  • Consolidate default behavior (dock windows, window closing, etc.).

  • Add backend support for multi-threaded section-serialized rendering.

  • Add backend support for section by section drawing for improved performance.

  • Add latency display capability with rolling average to backend.

  • Fix drawing bugs (nested layers, startup race condition, thread shutdown).

  • Introduce action architecture for declarative menus and key bindings.

  • Add support for “name” keyword for declarative row and column widgets.

0.3.27 (2020-02-27)

  • Fix tool tip handling (incorrect recursive implementation caused UI hangs).

  • Add support for layer caching (optimized drawing, part 1).

0.3.26 (2020-01-08)

  • Add support for dynamic tool tips in canvas items and list items.

  • Change default logging level to INFO (was DEBUG).

  • Add ability to register declarative components.

  • Add preliminary support for PySide2 (similar to PyQt).

  • Add unbind methods to complement all bind methods.

0.3.25 (2019-10-24)

  • Add icon to push button. Add binding to both push button text and icon.

  • Add binding to enabled/visible/tool_tip and size properties for all declarative elements.

  • Fix minor checkbox issue in PyQt.

  • Improve ability to handle stacked canvas items during drag and drop.

  • Extend list canvas item to support drag and drop on items.

  • Fix issues with SVG 1.1 compatibility (use ‘none’ in place of ‘transparent’, opacity).

  • Do not select list item if click handled in delegate mouse_pressed_in_item method.

0.3.24 (2019-06-27)

  • Fix problem clearing tasks. Add ability to clear queued tasks too.

  • Fix problem leaking threads in PyCanvas in PyQt backend.

  • Extend sizing policy support.

  • Expand capabilities of StringListWidget. Stricter keyword arguments too.

  • Implement high quality image rendering in PyQt backend.

0.3.23 (2019-04-17)

  • Fix byte ordering bug when exporting RGB data to SVG (includes complex data displays).

  • Do not automatically using expanding layout when setting min-width or min-height on widget.

  • Add ‘expanded’ property to SectionWidget for programmatic control.

  • Fix issue to avoid combo box having dangling update after close.

  • Fix another issue with closing dynamic components.

0.3.22 (2019-02-27)

  • Fix skewing issue drawing raster images with odd widths in pyqt UI.

  • Fix issues with dynamic declarative components.

  • Keep selection (by index) on combo box, if possible, when replacing items.

0.3.21 (2019-01-07)

  • Add 2 pixel margin to tree widget to avoid undesired scrolling behavior.

  • Add text edit widget to declarative.

  • Allow window show method to specify position and size.

0.3.20 (2018-12-11)

  • Fix issue with drawing context when writing RGB data to SVG.

  • Load resources using pkgutil to be more compatible with embedding.

  • Add bitmap loader based on imageio.

  • Improve exception handling in pyqt callbacks to avoid crashes.

0.3.19 (2018-11-28)

  • Fix issues with line edits: returns, escapes, and editing finished events.

  • Fix issue with menu items being enabled for key shortcuts.

  • Add support for window level key handling.

0.3.17 (2018-11-13)

  • Add ability to specify width on declarative label, push button, combo box.

  • Fix problem comparing keyboard modifiers in pyqt.

  • Add text button widget.

  • Fix text color in SVG.

0.3.16 (2018-07-23)

  • Python 3.7 compatibility (command launcher).

0.3.15 (2018-06-25)

  • Fix combo box initialization issue.

0.3.14 (2018-06-18)

  • Fix issue with splitters. Also add snapping to 1/3, 1/2, and 2/3 points.

  • Fix bugs with PyQt backend (color maps, export image).

0.3.13 (2018-05-18)

  • Fix bugs with PyQt backend (gradients).

0.3.12 (2018-05-15)

  • DPI aware drawing code.

0.3.11 (2018-05-12)

  • Initial version online.

Copyright (c) 2013-2020 Nion Company

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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

nionui-0.6.0.tar.gz (177.0 kB view details)

Uploaded Source

Built Distribution

nionui-0.6.0-py3-none-any.whl (194.8 kB view details)

Uploaded Python 3

File details

Details for the file nionui-0.6.0.tar.gz.

File metadata

  • Download URL: nionui-0.6.0.tar.gz
  • Upload date:
  • Size: 177.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for nionui-0.6.0.tar.gz
Algorithm Hash digest
SHA256 5bc8dd66c0d936c54db0d2a8939c94e12081f4aad84979dec6a862fb89926b80
MD5 f2e220d432bd8e8cda61a3c6f012b551
BLAKE2b-256 24e90cfe65a3e829aa82e9966904eda5482ab37d9f6eae5fad7479bee696a15b

See more details on using hashes here.

File details

Details for the file nionui-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: nionui-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 194.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

File hashes

Hashes for nionui-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f3bd88597a87f2553b800eccfe048c15c6b1075ed553d81c93b605dd8be76fc9
MD5 971007787d329b937009fc9b311d09f9
BLAKE2b-256 275e6ffdf997e3b24dbdd04a6a3e3ee0a672ead89680b87ea97156712fe45fb2

See more details on using hashes here.

Supported by

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