Importance de l'ordre des imports dans Pyside
Bonjour à tous
J'ai eu hier un souci sur un code Pyside6. Ce code fait partie de ceux que j'ai mis en téléchargement dans mes exemples PyQt (donc ça veut dire qu'il avait fonctionné à un moment) mais hier il ne fonctionnait plus.
Et après décortication, j'ai trouvé que le souci provenait de l'ordre des imports.
Premier exemple
Code:
1 2 3 4
| from PySide6.QtWidgets import *
from PySide6.QtCore import *
print(issubclass(QSlider, QWidget)) |
Ce code fonctionne et affiche "True" ce qui correspond à ce que j'attendais, un QSlider est bien un objet hérité d'un QWidget
Second exemple: on inverse les imports
Code:
1 2 3 4
| from PySide6.QtCore import *
from PySide6.QtWidgets import *
print(issubclass(QSlider, QWidget)) |
Et là, ça ne va plus, il affiche "False" indiquant que là, un QSlider n'est pas un héritier d'un QWidget. De là (et c'était le souci de mon code) je ne peux plus le mettre dans un layout ou autre action inhérente à un QWidget.
Toutefois dans les deux cas, si je rajoute...
Code:
1 2 3
| app=QApplication([])
s=QSlider()
print(s) |
...ça affiche bien Pyside6.QtWidgets.QSlider montrant que le QSlider provient bien du QtWidets. De même essayer d'importer un QSlider depuis QtCore ne fonctionne pas. Le QtCore ne possède pas de QSlider.
Donc avez-vous un avis sur le fait que dans le second cas, un QSlider n'est pas un QWidget alors que rien ne devrait le gêner à ce propos ?
Merci à tous.
PS: Qt 6.7.0, Pyside 6.7.0 et Python 3.10.12