From e2f074b1aa0e8cd1a8d6fb15f8651d2c91f28d3a Mon Sep 17 00:00:00 2001 From: Mathias Guijarro Date: Wed, 3 Jul 2024 14:04:55 +0200 Subject: [PATCH] fix: make main() function working, to be able to test out of Qt Designer --- .../widgets/bec_status_box/bec_status_box.py | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/bec_widgets/widgets/bec_status_box/bec_status_box.py b/bec_widgets/widgets/bec_status_box/bec_status_box.py index bb3a81e4..a7919761 100644 --- a/bec_widgets/widgets/bec_status_box/bec_status_box.py +++ b/bec_widgets/widgets/bec_status_box/bec_status_box.py @@ -251,13 +251,37 @@ class BECStatusBox(QWidget): def main(): """Main method to run the BECStatusBox widget.""" + # pylint: disable=import-outside-toplevel + from bec_lib.client import BECClient + from bec_lib.logger import bec_logger + from bec_lib.service_config import ServiceConfig from qtpy.QtWidgets import QApplication + from bec_widgets.utils.bec_dispatcher import QtRedisConnector + + # logging has to be configured before create QApplication, + # otherwise it ends badly with segfault... + # (seems to be a threading issue with loguru and probably Redis connector, + # which has to be a QtRedisConnector for Qt apps... Otherwise it is not + # thread-safe somehow ; didn't want to debug all this now) + logger = bec_logger.logger + + service_config = ServiceConfig() + bec_logger.configure( + service_config.redis, + QtRedisConnector, + service_name="test_status_box", + service_config=service_config.service_config, + ) + app = QApplication(sys.argv) + qdarktheme.setup_theme("auto") - main_window = BECStatusBox() - main_window.show() + + client = BECClient() + status = BECStatusBox(parent=None, client=client, gui_id="test") + status.show() sys.exit(app.exec())