mirror of
https://github.com/iperov/DeepFaceLive
synced 2025-07-06 13:02:16 -07:00
74 lines
2.6 KiB
Python
74 lines
2.6 KiB
Python
from typing import Union, Any
|
|
|
|
from PyQt6.QtCore import *
|
|
from PyQt6.QtGui import *
|
|
from PyQt6.QtWidgets import *
|
|
|
|
from ..gui import QXImage
|
|
from ._part_QXWidget import _part_QXWidget
|
|
|
|
|
|
class QXLabel(QLabel, _part_QXWidget):
|
|
def __init__(self, text = None,
|
|
color = None,
|
|
image : QXImage = None,
|
|
movie = None,
|
|
word_wrap = False, scaled_contents = False,
|
|
|
|
font=None, tooltip_text=None,
|
|
size_policy=None,
|
|
minimum_size=None, minimum_width=None, minimum_height=None,
|
|
maximum_size=None, maximum_width=None, maximum_height=None,
|
|
fixed_size=None, fixed_width=None, fixed_height=None,
|
|
hided=False, enabled=True
|
|
):
|
|
|
|
super().__init__()
|
|
self._default_pal = QPalette( self.palette() )
|
|
|
|
if text is not None:
|
|
self.setText(text)
|
|
if movie is not None:
|
|
self.setMovie(movie)
|
|
if image is not None:
|
|
self.setPixmap(image.as_QXPixmap())
|
|
if word_wrap:
|
|
self.setWordWrap(True)
|
|
|
|
self.setScaledContents(scaled_contents)
|
|
self.set_color(color)
|
|
|
|
_part_QXWidget.__init__(self, font=font, tooltip_text=tooltip_text,
|
|
size_policy=size_policy,
|
|
minimum_size=minimum_size, minimum_width=minimum_width, minimum_height=minimum_height,
|
|
maximum_size=maximum_size, maximum_width=maximum_width, maximum_height=maximum_height,
|
|
fixed_size=fixed_size, fixed_width=fixed_width, fixed_height=fixed_height,
|
|
hided=hided, enabled=enabled )
|
|
|
|
def _update_color(self):
|
|
if self._color is not None:
|
|
pal = QPalette(self._default_pal)
|
|
pal.setColor( QPalette.ColorRole.WindowText, self._color )
|
|
self.setPalette(pal)
|
|
else:
|
|
self.setPalette(self._default_pal)
|
|
|
|
|
|
def set_color(self, color : Union[Any,None] ):
|
|
self._color = QColor(color) if color is not None else None
|
|
self._update_color()
|
|
|
|
def changeEvent(self, ev : QEvent):
|
|
super().changeEvent(ev)
|
|
|
|
if ev.type() == QEvent.Type.EnabledChange:
|
|
self._update_color()
|
|
|
|
|
|
def focusInEvent(self, ev : QFocusEvent):
|
|
super().focusInEvent(ev)
|
|
_part_QXWidget.focusInEvent(self, ev)
|
|
|
|
def resizeEvent(self, ev : QResizeEvent):
|
|
super().resizeEvent(ev)
|
|
_part_QXWidget.resizeEvent(self, ev)
|