PDA

View Full Version : Multiple windows



bgturk
23rd April 2009, 11:03
Hello,

I am using PyQt4 to visualize a fish that changes its shape:




def main():

app = QtGui.QApplication(sys.argv)

scene = QtGui.QGraphicsScene()
scene.setSceneRect( -2.0, -2.0, 4.0, 4.0)

fish = Fish()
fish.setPos(0.0, 0.0)
scene.addItem(fish)

view = QtGui.QGraphicsView(scene)
view.setRenderHint(QtGui.QPainter.Antialiasing)
view.scale(150,150)

view.show()
view.raise_()

sys.exit(app.exec_())


So far so good. This code works as expected. It opens up a window, with the fish in it.

Now I would like to simulate several fish, each placed in their own separate main window.

So the first step I did was to define a MainWindow class as follows:




class MainWindow(QtGui.QMainWindow):

def __init__(self):
QtGui.QMainWindow.__init__(self)
scene = QtGui.QGraphicsScene()
scene.setSceneRect( -2.0, -2.0, 4.0, 4.0)

fish = Fish()
fish.setPos(0, 0)
scene.addItem(fish)

view = QtGui.QGraphicsView(scene)
view.setRenderHint(QtGui.QPainter.Antialiasing)
view.scale(150,150)
self.setCentralWidget(view)

def main():
app = QtGui.QApplication(sys.argv)
win = MainWindow()
win.show()
win.raise_()
sys.exit(app.exec_())



but for some reason this just displays an empty window with no view in it. What am I doing wrong?