Typhinweise und Typprüfung für benutzerdefinierte IntEnum-Typen
Posted: 07 Jan 2025, 14:00
Qt verfügt über mehrere IntEnums, die benutzerdefinierte, vom Benutzer angegebene Typen oder Rollen unterstützen. Einige Beispiele sind:
Das Problem besteht darin, dass alle Funktionen, die sich mit diesen Typen/Rollen befassen, eine Instanz von IntEnum und kein int erwarten und mypy eine meldet Fehler.
Mypy-Fehler:
Die integrierte Typprüfung in VS-Code mit Pylance führt zu einem ähnlichen Fehler:
Welche Art von Hinweisen kann ich von meiner Seite aus tun, um Mypy zufriedenzustellen? Muss dies beim Qt-Typhinweis geändert werden?
Code: Select all
QtCore.Qt.ItemDataRole.UserRole
Code: Select all
QtCore.QEvent.Type.User
Code: Select all
myType = QtCore.QEvent.Type.User + 1
Code: Select all
from PySide6.QtCore import QEvent
class MyEvent(QEvent):
def __init__(self) -> None:
super().__init__(QEvent.Type.User + 1)
Code: Select all
No overload variant of "__init__" of "QEvent" matches argument type "int"
Code: Select all
No overloads for "__init__" match the provided arguments PylancereportCallIssue
QtCore.pyi(2756, 9): Overload 2 is the closest match
Argument of type "int" cannot be assigned to parameter "type" of type "Type" in function "__init__"
"int" is not assignable to "Type" PylancereportArgumentType