Seite 1 von 1

Korrektes Subclassing von Qt Objekten

Verfasst: Montag 23. April 2012, 07:49
von kevin
Hallo,

ich veruche gerade ein erstes Projekt mit PyQt4 umzusetzen und hab dabei folgendes Problem:

Ich brauche eine modifizierte QGraphicsScene, und möchte desshalb eine neue Klasse erstellen, die von QGraphicsScene erbt. Dabei scheitert schon folgendes simples Beispiel:

Code: Alles auswählen

from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

class A(QGraphicsScene):
    
    def __init__(self):
        super(A, self).__init__(0, 0, 100, 100)

app = QApplication(sys.argv)

a = A()
A.addRect(0, 0, 10, 10)
Die Fehlermeldung:
arguments did not match any overloaded call: QGraphicsScene.addRect(QRectF, QPen pen=QPen(), QBrush brush=QBrush()): first argument of unbound method must have type 'QGraphicsScene'
Dieselbe Fehlermeldung erhalte ich bei allen anderen Methoden von QGraphicsScene genauso, warum erkennt Qt nicht, dass Klasse A eine Subclass von QGraphicsScene ist? Kann man überhaupt Unterklassen von Qt Objekten ableiten? Wenn ja, wie macht man das richtig?

vielen Dank für die Hilfe,

Kevin

Re: Korrektes Subclassing von Qt Objekten

Verfasst: Montag 23. April 2012, 08:15
von lunar
@kevin: Mit Ableitung von Klassen hat die Fehlermeldung nichts zu tun. Du versuchst vielmehr, eine Methode auf der Klasse selbst aufzurufen anstatt auf einem Exemplar. Die letzte Zeile muss "a.addRect(0, 0, 10, 10)" lauten.