1
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2026-03-05 00:12:49 +01:00
Mathias Guijarro 011103fde3 refactor: put QTreeWidget in a container, rather than inheriting from it, and avoid multiple inheritance of BECConnector
Inheriting from QTreeWidget causes havoc with display (see #245),
also it is important to parent items OR to give them a label (weird)
otherwise it also has display glitches.

Most of the time, composition has to be preferred over inheritance ;
inheritance is a question of behaviour - is the behaviour the same ?
Here, a widget is really not a BECConnector, but uses a BECConnector
(at least this is my understanding). Because a Widget and BECConnector
do not behave the same. It is easier, lighter to deal with single
inheritance.

The singleton usage is superfluous, since the underlying client is already
a singleton. Multiple BECConnector objects can be created, there won't
be more connections.

BECServiceStatusMixin has been removed in favor of the widget's own timer,
since it was causing "QObject::killTimer: Timers cannot be stopped from
another thread" errors (at least on my computer).

Also removes "redundant items check" ; where do those would come from?
2024-07-03 14:09:55 +02:00
2024-06-25 18:37:23 +02:00
2023-07-11 15:20:43 +02:00
2024-03-05 12:46:49 +01:00
2024-03-05 12:46:49 +01:00
2024-07-03 09:34:03 +00:00
2023-07-13 20:37:29 +00:00
2024-07-03 09:34:03 +00:00
2024-05-09 14:53:57 +02:00

BEC Widgets

BEC Widgets is a GUI framework designed for interaction with BEC (Beamline Experiment Control).

Installation

Use the package manager pip to install BEC Widgets:

pip install bec_widgets PyQt6

For development purposes, you can clone the repository and install the package locally in editable mode:

git clone https://gitlab.psi.ch/bec/bec-widgets
cd bec_widgets
pip install -e .[dev,pyqt6]

BEC Widgets currently supports both PyQt5 and PyQt6, however, no default distribution is specified. As a result, users must install one of the supported Python Qt distributions manually.

To select a specific Python Qt distribution, install the package with an additional tag:

pip install bec_widgets[pyqt6]

or

pip install bec_widgets[pyqt5]

Documentation

Documentation of BEC Widgets can be found here. The documentation of the BEC can be found here.

Contributing

All commits should use the Angular commit scheme:

Angular Commit Message Header

<type>(<scope>): <short summary>
  │       │             │
  │       │             └─⫸ Summary in present tense. Not capitalized. No period at the end.
  │       │
  │       └─⫸ Commit Scope: animations|bazel|benchpress|common|compiler|compiler-cli|core|
  │                          elements|forms|http|language-service|localize|platform-browser|
  │                          platform-browser-dynamic|platform-server|router|service-worker|
  │                          upgrade|zone.js|packaging|changelog|docs-infra|migrations|ngcc|ve|
  │                          devtools
  │
  └─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test

The <type> and <summary> fields are mandatory, the (<scope>) field is optional.

Type

Must be one of the following:

  • build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
  • ci: Changes to our CI configuration files and scripts (examples: CircleCi, SauceLabs)
  • docs: Documentation only changes
  • feat: A new feature
  • fix: A bug fix
  • perf: A code change that improves performance
  • refactor: A code change that neither fixes a bug nor adds a feature
  • test: Adding missing tests or correcting existing tests

License

BSD-3-Clause

Description
No description provided
Readme BSD-3-Clause 130 MiB
Languages
Python 100%