def get_widget_key(widget: QObject, suffix=None): if widget is None: return None retKey = None while widget is not None: if retKey is None: retKey = widget.objectName() else: retKey = widget.objectName() + "-" + retKey widget = get_parent(widget) if suffix is not None: retKey = retKey + "-" + suffix return retKey
def eventFilter(self, obj: QObject, event: QEvent) -> bool: if event.type() == QEvent.MouseButtonRelease and isinstance( obj, VideoSlider): if obj.objectName() == 'VideoSlider' and ( self.mediaPlayer.isVideoAvailable() or self.mediaPlayer.isAudioAvailable()): obj.setValue( QStyle.sliderValueFromPosition(obj.minimum(), obj.maximum(), event.x(), obj.width())) self.mediaPlayer.setPosition(obj.sliderPosition()) return QWidget.eventFilter(self, obj, event)
def __init__(self, obj: QObject, prop_name: str): self.obj = obj self.prop_name = prop_name obj_meta = obj.staticMetaObject prop_meta = obj_meta.property(obj_meta.indexOfProperty(prop_name)) notify_signal_meta = prop_meta.notifySignal() assert notify_signal_meta, "property '{}' has no notifier".format( prop_name) notify_signal_name = bytes(notify_signal_meta.name()).decode('utf8') assert notify_signal_name, "property '{}' notifier has no name?!".format( prop_name) notify_signal = getattr(obj, notify_signal_name) with ScopedName(obj.objectName() + '.' + prop_name): super().__init__(notify_signal)
def _get_name_list(obj: QObject): return [ str(obj.__class__.__name__), obj.objectName(), '', str(id(obj)) ]