Stworzyłem podklasę QLabel
, którą zamierzam użyć w QGraphicsView
. Służy jako ruchomy "punkt", który można kliknąć i przeciągnąć wokół widoku graficznego.Dlaczego nie działa ustawienie pixelapy obiektu QLabel?
Tworzenie niestandardowej klasy i wyświetlanie jej w widoku graficznym nie stanowiło problemu; jednak próba uzyskania niestandardowego QLabel
malowania się obrazem, którego chcę, nie ma miejsca. Konstruktor dla mojego niestandardowy QLabel
klasy jest tak:
TrackerPoint::TrackerPoint(QWidget *parent) :
QLabel(parent)
{
this->setFixedSize(40, 40);
QPixmap pixmap(":/images/target.png");
this->setPixmap(pixmap);
this->setMask(pixmap.mask());
}
mam zapewnione, że katalog zdjęć istnieje w katalogu roboczym, że aplikacja jest uruchamiana od. Jeśli jest to istotne w ogóle, mój plik QRC jest tak:
<RCC>
<qresource prefix="/images">
<file>images/target.png</file>
</qresource>
</RCC>
Próbowałem poradzić sobie z tym problemem przez kilka dni - jakieś pomysły, dlaczego obraz nie pojawia byłby piękny. (? Czy to ma coś wspólnego z faktem, że jestem wyznaczając pixmapę w konstruktora QLabel
)
Być może zastąpiłeś 'paintEvent' z' QLabel' przez 'TrackerPoint :: paintEvent'? – ismail
Użycie ctor powinno być w porządku. Mimo że podklasy nie powinny być w większości przypadków konieczne. Czy próbowałeś stworzyć etykietę poza grafiką? Czy próbowałeś QGraphicsPixmapItem? –