DeepFaceLab/core/qtex/QXMainWindow.py
2022-05-22 18:14:33 -07:00

34 lines
No EOL
1.1 KiB
Python

from PySide6.QtCore import *
from PySide6.QtGui import *
from PySide6.QtWidgets import *
class QXMainWindow(QWidget):
"""
Custom mainwindow class that provides global single instance and event listeners
"""
inst = None
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if QXMainWindow.inst is not None:
raise Exception("QXMainWindow can only be one.")
QXMainWindow.inst = self
self.keyPressEvent_listeners = []
self.keyReleaseEvent_listeners = []
self.setFocusPolicy(Qt.WheelFocus)
def add_keyPressEvent_listener(self, func):
self.keyPressEvent_listeners.append (func)
def add_keyReleaseEvent_listener(self, func):
self.keyReleaseEvent_listeners.append (func)
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)