DF / core /qtex /QXMainWindow.py
Jatin7860's picture
Upload 226 files
fcd5579 verified
raw
history blame
1.14 kB
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.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)