From 42f47c868b838adfc1c0762ba64487eb822f6de1 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Mon, 21 Feb 2022 16:51:30 +0100 Subject: [PATCH] created clickable label in utils --- openpype/tools/utils/__init__.py | 6 +++++- openpype/tools/utils/widgets.py | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/openpype/tools/utils/__init__.py b/openpype/tools/utils/__init__.py index 46af051069..b4b0af106e 100644 --- a/openpype/tools/utils/__init__.py +++ b/openpype/tools/utils/__init__.py @@ -2,11 +2,12 @@ from .widgets import ( PlaceholderLineEdit, BaseClickableFrame, ClickableFrame, + ClickableLabel, ExpandBtn, PixmapLabel, IconButton, ) - +from .views import DeselectableTreeView from .error_dialog import ErrorMessageBox from .lib import ( WrappedCallbackItem, @@ -24,10 +25,13 @@ __all__ = ( "PlaceholderLineEdit", "BaseClickableFrame", "ClickableFrame", + "ClickableLabel", "ExpandBtn", "PixmapLabel", "IconButton", + "DeselectableTreeView", + "ErrorMessageBox", "WrappedCallbackItem", diff --git a/openpype/tools/utils/widgets.py b/openpype/tools/utils/widgets.py index c62b838231..a4e172ea5c 100644 --- a/openpype/tools/utils/widgets.py +++ b/openpype/tools/utils/widgets.py @@ -63,6 +63,29 @@ class ClickableFrame(BaseClickableFrame): self.clicked.emit() +class ClickableLabel(QtWidgets.QLabel): + """Label that catch left mouse click and can trigger 'clicked' signal.""" + clicked = QtCore.Signal() + + def __init__(self, parent): + super(ClickableLabel, self).__init__(parent) + + self._mouse_pressed = False + + def mousePressEvent(self, event): + if event.button() == QtCore.Qt.LeftButton: + self._mouse_pressed = True + super(ClickableLabel, self).mousePressEvent(event) + + def mouseReleaseEvent(self, event): + if self._mouse_pressed: + self._mouse_pressed = False + if self.rect().contains(event.pos()): + self.clicked.emit() + + super(ClickableLabel, self).mouseReleaseEvent(event) + + class ExpandBtnLabel(QtWidgets.QLabel): """Label showing expand icon meant for ExpandBtn.""" def __init__(self, parent):