Typhinweise und Typprüfung für benutzerdefinierte IntEnum-TypenPython

Python-Programme
Guest
 Typhinweise und Typprüfung für benutzerdefinierte IntEnum-Typen

Post by Guest »

Qt verfügt über mehrere IntEnums, die benutzerdefinierte, vom Benutzer angegebene Typen oder Rollen unterstützen. Einige Beispiele sind: In beiden Fällen wird ein Benutzertyp/eine Benutzerrolle erstellt, indem eine Ganzzahl >= der Benutzertyp/die Benutzerrolle ausgewählt wird

Code: Select all

myType = QtCore.QEvent.Type.User + 1
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.

Code: Select all

from PySide6.QtCore import QEvent

class MyEvent(QEvent):

def __init__(self) -> None:
super().__init__(QEvent.Type.User + 1)
Mypy-Fehler:

Code: Select all

No overload variant of "__init__" of "QEvent" matches argument type "int"
Die integrierte Typprüfung in VS-Code mit Pylance führt zu einem ähnlichen Fehler:

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
Welche Art von Hinweisen kann ich von meiner Seite aus tun, um Mypy zufriedenzustellen? Muss dies beim Qt-Typhinweis geändert werden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post