Using PyQt5 from the Python ShellΒΆ

PyQt5 installs an input hook (using PyOS_InputHook) that processes events when an interactive interpreter is waiting for user input. This means that you can, for example, create widgets from the Python shell prompt, interact with them, and still being able to enter other Python commands.

For example, if you enter the following in the Python shell:

>>> from PyQt5.QtWidgets import QApplication, QWidget
>>> a = QApplication([])
>>> w = QWidget()
>>> w.show()
>>> w.hide()
>>>

The widget would be displayed when w.show() was entered and hidden as soon as w.hide() was entered.

The installation of an input hook can cause problems for certain applications (particularly those that implement a similar feature using different means). The QtCore module contains the pyqtRemoveInputHook() and pyqtRestoreInputHook() functions that remove and restore the input hook respectively.