mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-07-06 13:02:15 -07:00
34 lines
No EOL
1.1 KiB
Python
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) |