mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 03:31:50 +02:00
fix(round_frame): RoundFrame removed from BECWidget inheritance
This commit is contained in:
@ -2,11 +2,10 @@ import pyqtgraph as pg
|
|||||||
from qtpy.QtCore import Property
|
from qtpy.QtCore import Property
|
||||||
from qtpy.QtWidgets import QApplication, QFrame, QHBoxLayout, QVBoxLayout, QWidget
|
from qtpy.QtWidgets import QApplication, QFrame, QHBoxLayout, QVBoxLayout, QWidget
|
||||||
|
|
||||||
from bec_widgets.utils.bec_widget import BECWidget
|
|
||||||
from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton
|
from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton
|
||||||
|
|
||||||
|
|
||||||
class RoundedFrame(BECWidget, QFrame):
|
class RoundedFrame(QFrame):
|
||||||
"""
|
"""
|
||||||
A custom QFrame with rounded corners and optional theme updates.
|
A custom QFrame with rounded corners and optional theme updates.
|
||||||
The frame can contain any QWidget, however it is mainly designed to wrap PlotWidgets to provide a consistent look and feel with other BEC Widgets.
|
The frame can contain any QWidget, however it is mainly designed to wrap PlotWidgets to provide a consistent look and feel with other BEC Widgets.
|
||||||
@ -17,15 +16,11 @@ class RoundedFrame(BECWidget, QFrame):
|
|||||||
parent=None,
|
parent=None,
|
||||||
content_widget: QWidget = None,
|
content_widget: QWidget = None,
|
||||||
background_color: str = None,
|
background_color: str = None,
|
||||||
theme_update: bool = True,
|
|
||||||
radius: int = 10,
|
radius: int = 10,
|
||||||
**kwargs,
|
|
||||||
):
|
):
|
||||||
super().__init__(**kwargs)
|
|
||||||
QFrame.__init__(self, parent)
|
QFrame.__init__(self, parent)
|
||||||
|
|
||||||
self.background_color = background_color
|
self.background_color = background_color
|
||||||
self.theme_update = theme_update if background_color is None else False
|
|
||||||
self._radius = radius
|
self._radius = radius
|
||||||
|
|
||||||
# Apply rounded frame styling
|
# Apply rounded frame styling
|
||||||
@ -46,14 +41,14 @@ class RoundedFrame(BECWidget, QFrame):
|
|||||||
# Automatically apply initial styles to the GraphicalLayoutWidget if applicable
|
# Automatically apply initial styles to the GraphicalLayoutWidget if applicable
|
||||||
self.apply_plot_widget_style()
|
self.apply_plot_widget_style()
|
||||||
|
|
||||||
self._connect_to_theme_change()
|
|
||||||
|
|
||||||
def apply_theme(self, theme: str):
|
def apply_theme(self, theme: str):
|
||||||
"""
|
"""
|
||||||
Apply the theme to the frame and its content if theme updates are enabled.
|
Apply the theme to the frame and its content if theme updates are enabled.
|
||||||
"""
|
"""
|
||||||
if not self.theme_update:
|
if self.content_widget is not None and isinstance(
|
||||||
return
|
self.content_widget, pg.GraphicsLayoutWidget
|
||||||
|
):
|
||||||
|
self.content_widget.setBackground(self.background_color)
|
||||||
|
|
||||||
# Update background color based on the theme
|
# Update background color based on the theme
|
||||||
if theme == "light":
|
if theme == "light":
|
||||||
@ -129,8 +124,8 @@ class ExampleApp(QWidget): # pragma: no cover
|
|||||||
plot2.plot_item = plot_item_2
|
plot2.plot_item = plot_item_2
|
||||||
|
|
||||||
# Wrap PlotWidgets in RoundedFrame
|
# Wrap PlotWidgets in RoundedFrame
|
||||||
rounded_plot1 = RoundedFrame(content_widget=plot1, theme_update=True)
|
rounded_plot1 = RoundedFrame(parent=self, content_widget=plot1)
|
||||||
rounded_plot2 = RoundedFrame(content_widget=plot2, theme_update=True)
|
rounded_plot2 = RoundedFrame(parent=self, content_widget=plot2)
|
||||||
|
|
||||||
# Add to layout
|
# Add to layout
|
||||||
layout.addWidget(dark_button)
|
layout.addWidget(dark_button)
|
||||||
|
@ -130,7 +130,7 @@ class PlotBase(BECWidget, QWidget):
|
|||||||
|
|
||||||
def _init_ui(self):
|
def _init_ui(self):
|
||||||
self.layout.addWidget(self.layout_manager)
|
self.layout.addWidget(self.layout_manager)
|
||||||
self.round_plot_widget = RoundedFrame(content_widget=self.plot_widget, theme_update=True)
|
self.round_plot_widget = RoundedFrame(parent=self, content_widget=self.plot_widget)
|
||||||
|
|
||||||
self.layout_manager.add_widget(self.round_plot_widget)
|
self.layout_manager.add_widget(self.round_plot_widget)
|
||||||
self.layout_manager.add_widget_relative(self.fps_label, self.round_plot_widget, "top")
|
self.layout_manager.add_widget_relative(self.fps_label, self.round_plot_widget, "top")
|
||||||
|
@ -24,7 +24,7 @@ def basic_rounded_frame(qtbot):
|
|||||||
def plot_rounded_frame(qtbot):
|
def plot_rounded_frame(qtbot):
|
||||||
plot_widget = pg.PlotWidget()
|
plot_widget = pg.PlotWidget()
|
||||||
plot_widget.plot([0, 1, 2], [2, 1, 0])
|
plot_widget.plot([0, 1, 2], [2, 1, 0])
|
||||||
frame = RoundedFrame(content_widget=plot_widget, theme_update=True)
|
frame = RoundedFrame(content_widget=plot_widget)
|
||||||
qtbot.addWidget(frame)
|
qtbot.addWidget(frame)
|
||||||
qtbot.waitExposed(frame)
|
qtbot.waitExposed(frame)
|
||||||
yield frame
|
yield frame
|
||||||
@ -35,7 +35,6 @@ def test_basic_rounded_frame_initialization(basic_rounded_frame):
|
|||||||
assert basic_rounded_frame.radius == 10
|
assert basic_rounded_frame.radius == 10
|
||||||
assert basic_rounded_frame.content_widget is None
|
assert basic_rounded_frame.content_widget is None
|
||||||
assert basic_rounded_frame.background_color is None
|
assert basic_rounded_frame.background_color is None
|
||||||
assert basic_rounded_frame.theme_update is True
|
|
||||||
|
|
||||||
|
|
||||||
def test_set_radius(basic_rounded_frame):
|
def test_set_radius(basic_rounded_frame):
|
||||||
|
Reference in New Issue
Block a user