- 
    
Bug
 - 
    Resolution: Fixed
 - 
    
  Not Evaluated                     
     - 
    None
 - 
    6.8.0, 6.8.1, 6.8.0.2
 - 
    None
 
styleHints().colorSchemeChanged fails without a lambda being used, regardless if you use the Slot() decorator or not. There is no error, it's just a silent fail.
A simple example with a nested function works without the lambda.
def build_auto_theme_icon_buttons(
    widget,
    icon: str,
    object_name: str,
    width: int,
    height: int,
    text_included: bool = False,
    parent: QWidget | None = None,
) -> Any:
    """
    Builds icon buttons and returns them with light/dark mode icons.
    We need to ensure to include a '_dark.svg' version of each svg file.
    """
    # Create the button
    button = widget(parent=parent)
    button.setObjectName(object_name)
    svg_path = Path(RUNTIME_DIR) / "svg" / icon
    # Function to update the icon based on the color scheme
    def update_icon(color_scheme: Qt.ColorScheme):
        if color_scheme == Qt.ColorScheme.Dark:
            dark_icon_path = svg_path.parent / (svg_path.stem + "_dark.svg")
            button.setIcon(QIcon(str(dark_icon_path)))  # Set the dark mode icon
        else:
            button.setIcon(QIcon(str(svg_path)))  # Set the light mode icon
        button.setIconSize(QSize(width, height))
    # Get the current app instance and connect to the color scheme change signal
    app = QApplication.instance()
    app.styleHints().colorSchemeChanged.connect(update_icon)  # Update on color scheme change
    # Set the icon based on the current color scheme
    update_icon(app.styleHints().colorScheme())  # Set the initial icon
    # Set other button properties
    button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly)
    if text_included:
        button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
    button.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
    return button
However, this same thing in a class fails. 
class IconButton:
    def _init_(
        self,
        widget: Any,
        icon: str,
        object_name: str,
        width: int,
        height: int,
        text_included: bool = False,
        parent: QWidget | None = None,
    ):
        """Initializes the IconButton object."""
        self.widget = widget
        self.icon = icon
        self.object_name = object_name
        self.width = width
        self.height = height
        self.text_included = text_included
        self.parent = parent
        self.button = self.widget(parent=self.parent)
        self.button.setObjectName(self.object_name)
        self.svg_path = Path(RUNTIME_DIR) / "svg" / self.icon
        # set up the button's icon and style
        self.setup_button()
        # connect to color scheme change signal
        self.app = QApplication.instance()
        self.app.styleHints().colorSchemeChanged.connect(lambda e: self.update_icon(e))  # pyright: ignore [reportAttributeAccessIssue, reportOptionalMemberAccess]
        # self.app.styleHints().colorSchemeChanged.connect(self.update_icon)  # pyright: ignore [reportAttributeAccessIssue, reportOptionalMemberAccess]
        # set the initial icon based on the current color scheme
        self.update_icon(self.app.styleHints().colorScheme())  # pyright: ignore [reportAttributeAccessIssue, reportOptionalMemberAccess]
    def setup_button(self):
        """Sets up the button's initial properties."""
        self.button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly)
        if self.text_included:
            self.button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
        self.button.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
    @Slot(Qt.ColorScheme)
    def update_icon(self, color_scheme: Qt.ColorScheme):
        """Updates the button icon based on the color scheme."""
        if color_scheme == Qt.ColorScheme.Dark:
            dark_icon_path = self.svg_path.parent / (self.svg_path.stem + "_dark.svg")
            # set the dark mode icon
            self.button.setIcon(QIcon(str(dark_icon_path)))
        else:
            # set the light mode icon
            self.button.setIcon(QIcon(str(self.svg_path)))
        self.button.setIconSize(QSize(self.width, self.height))
    def get_button(self):
        """Returns the created button."""
        return self.button