mirror of
https://github.com/iperov/DeepFaceLive
synced 2025-07-16 10:03:42 -07:00
code release
This commit is contained in:
parent
b941ba41a3
commit
a902f11f74
354 changed files with 826570 additions and 1 deletions
99
xlib/qt/widgets/QXWindow.py
Normal file
99
xlib/qt/widgets/QXWindow.py
Normal file
|
@ -0,0 +1,99 @@
|
|||
from PyQt6.QtCore import *
|
||||
from PyQt6.QtGui import *
|
||||
from PyQt6.QtWidgets import *
|
||||
from xlib.python import EventListener
|
||||
|
||||
from .forward_declarations import forward_declarations
|
||||
from .QXMainApplication import QXMainApplication
|
||||
from .QXWidget import QXWidget
|
||||
|
||||
|
||||
class QXWindow(QXWidget):
|
||||
"""
|
||||
represents top widget which has no parent
|
||||
"""
|
||||
|
||||
|
||||
def __init__(self, save_load_state=False,
|
||||
size_policy=None):
|
||||
|
||||
super().__init__(size_policy=size_policy)
|
||||
self._save_load_state = save_load_state
|
||||
|
||||
#QXMainApplication.get_singleton().register_QXWindow(self)
|
||||
|
||||
#self.keyPressEvent_listeners = []
|
||||
#self.keyReleaseEvent_listeners = []
|
||||
|
||||
self._QXW = True
|
||||
self._closeEvent_ev = EventListener()
|
||||
|
||||
self.setFocusPolicy(Qt.FocusPolicy.WheelFocus)
|
||||
self._qp = QPainter()
|
||||
|
||||
pal = QXMainApplication.get_singleton().palette()
|
||||
self._bg_color = pal.color(QPalette.ColorRole.Window)
|
||||
|
||||
def call_on_closeEvent(self, func_or_list):
|
||||
self._closeEvent_ev.add(func_or_list)
|
||||
|
||||
# def add_closeEvent_func(self, func):
|
||||
# self.closeEvent_funcs.append (func)
|
||||
|
||||
# def add_keyPressEvent_listener(self, func):
|
||||
# self.keyPressEvent_listeners.append (func)
|
||||
|
||||
# def add_keyReleaseEvent_listener(self, func):
|
||||
# self.keyReleaseEvent_listeners.append (func)
|
||||
|
||||
def center_on_screen(self):
|
||||
widget_width, widget_height = self.size().width(), self.size().height()
|
||||
screen_size = QXMainApplication.get_singleton().primaryScreen().size()
|
||||
|
||||
self.move( (screen_size.width() - widget_width) // 2, (screen_size.height() - widget_height) // 2 )
|
||||
|
||||
#def resizeEvent(self, ev : QResizeEvent):
|
||||
# super().resizeEvent(ev)
|
||||
|
||||
def showEvent(self, ev: QShowEvent):
|
||||
super().showEvent(ev)
|
||||
if self._save_load_state:
|
||||
geo = self.get_widget_data('geometry')
|
||||
if geo is not None:
|
||||
pos, size = geo
|
||||
self.move(pos)
|
||||
self.resize(size)
|
||||
else:
|
||||
self.center_on_screen()
|
||||
|
||||
def hideEvent(self, ev: QHideEvent):
|
||||
super().hideEvent(ev)
|
||||
if self._save_load_state:
|
||||
self.set_widget_data('geometry', ( self.pos(), self.size() ) )
|
||||
|
||||
def closeEvent(self, ev : QCloseEvent):
|
||||
super().closeEvent(ev)
|
||||
if ev.isAccepted():
|
||||
self._closeEvent_ev.call()
|
||||
|
||||
def is_minimized(self) -> bool:
|
||||
state = self.windowState()
|
||||
return (state & Qt.WindowState.WindowMinimized) == Qt.WindowState.WindowMinimized
|
||||
|
||||
def paintEvent(self, ev : QPaintEvent):
|
||||
qp = self._qp
|
||||
qp.begin(self)
|
||||
qp.fillRect(self.rect(), self._bg_color )
|
||||
qp.end()
|
||||
|
||||
# def keyPressEvent(self, ev):
|
||||
# super().keyPressEvent(ev)
|
||||
# for func in self.keyPressEvent_listeners:
|
||||
# func(ev)
|
||||
|
||||
# def keyReleaseEvent(self, ev):
|
||||
# super().keyReleaseEvent(ev)
|
||||
# for func in self.keyReleaseEvent_listeners:
|
||||
# func(ev)
|
||||
|
||||
forward_declarations.QXWindow = QXWindow
|
Loading…
Add table
Add a link
Reference in a new issue