def addUnlockableTab(self, widget_callback: Callable[[], Optional[QWidget]], label: str) -> int: empty_widget = QWidget() empty_widget._unlock_callback = widget_callback # piggyback our own state onto the widget return self.addTab(empty_widget, label)