le code ci-dessous Tenir compte:PyQt: pourquoi l'ajout d'une définition de classe fictive dans mon fichier fait planter l'application?
#!/usr/bin/env python
from PyQt4 import QtCore, QtGui
import os,sys
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.listWidget = QtGui.QListWidget(None)
self.setCentralWidget(self.listWidget)
if __name__ == '__main__':
app = QtGui.QApplication (sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit (app.exec_())
Fonctionne bien. Maintenant, si j'ajoute une classe fictive (qui hérite d'une classe du module QtGui) dans la portée globale ...
class MainWindow(QtGui.QMainWindow):
... # unchanged
class MyWidget(QtGui.QWidget):
def __init__(self):
super(MyWidget, self).__init__()
if __name__ == '__main__':
... # unchanged
... quand je lance le script que je reçois l'erreur:
TypeError: argument 1 of QMainWindow.setCentralWidget() has an invalid type
Ce message d'erreur est cryptique pour moi car je ne peux pas le connecter à la modification effectuée. Avez-vous une idée de ce qui pourrait être la source de cette erreur?
Python 2.6.2 à partir de python.org et PyQt 4.5.2 Il suffit de revenir à Python 2.5.4 et cela fonctionne comme un charme. Merci! – kraymer
@kraymer, de rien, mais c'est gênant si le dernier PyQt ne fonctionne pas avec le dernier Python - quand j'aurai le temps je vais essayer de reconstruire PyQt avec Python 2.6.2 et voir ce qui donne (peut-être ouvrir un bug sur le tracker de PyQt ...?) –