考虑下面的代码:PyQt:为什么在我的文件中添加一个虚拟类定义会导致应用程序崩溃?
#!/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_())
工程确定。 现在,如果我添加一个虚拟类(即从QtGui模块的类继承)在全球范围内...
class MainWindow(QtGui.QMainWindow):
... # unchanged
class MyWidget(QtGui.QWidget):
def __init__(self):
super(MyWidget, self).__init__()
if __name__ == '__main__':
... # unchanged
...当我启动脚本我得到的错误:
TypeError: argument 1 of QMainWindow.setCentralWidget() has an invalid type
这个错误信息对我来说太神秘了,因为我无法将它连接到已完成的修改。 你有什么想法可能是这个错误的根源?
来自python.org和PyQt 4.5.2的Python 2.6.2 刚刚切换回Python 2.5.4,它就像一个魅力。谢谢! – kraymer 2009-08-05 17:19:06
@kraymer,不用客气,但如果最新的PyQt不能与最新的Python一起工作会很麻烦 - 当我有时间的时候我会尝试用Python 2.6.2重新编译PyQt,看看是什么给了(也许打开一个PyQt的跟踪器上的错误...?) – 2009-08-05 17:25:34