Korrektes Subclassing von Qt Objekten

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
kevin
User
Beiträge: 1
Registriert: Montag 23. April 2012, 07:36

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
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.
Antworten