私はいくつかのpythonオブジェクトを視覚化するためにPyQtプログラムを使用しています。複数のオブジェクトをそれぞれ独自のウィンドウで表示したいと思います。PyQt4の複数のWindows
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_()
は、上記のコードではなく、適切なサブクラスのものよりも、メインウィンドウのクラスのイニシャライザを呼び出すので、例外がスローされます。
どのようにしてサブクラスの初期化子を呼び出すことができますか?これを行うよりエレガントな方法はありますか?