我有一個PyQt程序用於可視化一些python對象。我想在自己的窗口中顯示多個對象。在PyQt4中的多個窗口
在PyQt4中實現多窗口應用程序的最佳方式是什麼?
目前,我有以下幾點:
from PyQt4 import QtGui
class MainWindow(QtGui.QMainWindow):
windowList = []
def __init__(self, animal):
pass
def addwindow(self, animal)
win = MainWindow(animal)
windowList.append(win)
if __name__=="__main__":
import sys
app = QtGui.QApplication(sys.argv)
win = QMainWindow(dog)
win.addWindow(fish)
win.addWindow(cat)
app.exec_()
然而,這種方法並不理想,當我試圖分析出在它自己的類MultipleWindows一部分,我面對的問題。例如:
class MultiWindows(QtGui.QMainWindow):
windowList = []
def __init__(self, param):
raise NotImplementedError()
def addwindow(self, param)
win = MainWindow(param) # How to call the initializer of the subclass from here?
windowList.append(win)
class PlanetApp(MultiWindows):
def __init__(self, planet):
pass
class AnimalApp(MultiWindows):
def __init__(self, planet):
pass
if __name__=="__main__":
import sys
app = QtGui.QApplication(sys.argv)
win = PlanetApp(mercury)
win.addWindow(venus)
win.addWindow(jupiter)
app.exec_()
上面的代碼將調用MainWindow類的初始化,而不是適宜亞類的,因此將拋出異常。
我該如何調用子類的初始值設定項?有沒有更優雅的方式來做到這一點?