[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    PyQt6 Signals are not correctly typed
From:       JakobDev <jakobdev () gmx ! de>
Date:       2022-11-16 14:24:30
Message-ID: 5f58817a-5e15-48c7-9dce-cd73be9518fb () gmx ! de
[Download RAW message or body]

I demonstrate it with the attached example. It's a very simple Program
that just shows a Button. If you click the Button, it prints Hello
World. So pretty normal. Now let's run mypy on this. It gives you this
error:

testtype.py:13: error: "Callable[[], None]" has no attribute "connect"
Found 1 error in 1 file (checked 1 source file)

Now let's open this in PyCharm. PyCharm also shows a error here. Signals
are not correctly typed. It looks like they are typed as function. To be
clear: This here is just a example. It happens with every Signals, which
is annoying if you work on a bigger Project in PyCharm.

What makes this these even worse, is that PyQt6 comes with a py.typed
(see PEP561). It basically means, that this package can be considered as
statically and correctly typed.

["testtype.py" (text/x-python)]

from PyQt6.QtWidgets import QApplication, QPushButton
import sys


def hello_world():
    print("Hello World!")


app = QApplication(sys.argv)

button = QPushButton("Say Hello")
button.pressed.connect(hello_world)
button.show()

sys.exit(app.exec())

["PyCharm.png" (image/png)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic