Ich habe eine Unterklasse von QLabel
erstellt, die ich in einem QGraphicsView
verwenden möchte. Es dient als beweglicher "Punkt", auf den man klicken und die Grafikansicht ziehen kann.Warum funktioniert das Setzen der Pixmap eines QLabels nicht?
Das Erstellen der benutzerdefinierten Klasse und deren Anzeige in der Grafikansicht war kein Problem. jedoch versucht, die benutzerdefinierte QLabel
zu bekommen, um sich mit dem Bild zu malen, das ich will, geschieht nicht. Der Konstruktor für meine benutzerdefinierte QLabel
Klasse ist wie folgt:
TrackerPoint::TrackerPoint(QWidget *parent) :
QLabel(parent)
{
this->setFixedSize(40, 40);
QPixmap pixmap(":/images/target.png");
this->setPixmap(pixmap);
this->setMask(pixmap.mask());
}
Ich habe sichergestellt, dass die Bilder-Verzeichnis im Arbeitsverzeichnis vorhanden ist, die die Anwendung von ausgeführt wird. Wenn er dies überhaupt ist, ist meine QRC-Datei wie folgt:
<RCC>
<qresource prefix="/images">
<file>images/target.png</file>
</qresource>
</RCC>
Ich habe versucht, für Tage mit diesem Problem fertig zu werden - irgendwelche Ideen, warum das Bild nicht wäre schön erscheinen. (? Hat es mit der Tatsache zu tun, dass ich eine Pixmap in dem Konstruktor der QLabel
Einstellung)
Vielleicht hast du 'paintEvent' von' QLabel' über 'TrackerPoint :: paintEvent' überschrieben? – ismail
Die ctor Verwendung sollte in Ordnung sein. Obwohl Subclassing in den meisten Fällen nicht notwendig sein sollte. Haben Sie versucht, ein Label außerhalb der grafischen Szene zu erstellen? Haben Sie QGraphicsPixmapItem getestet? –