Hallo
Ich bin Anfänger in Qt.
Kann man in einer abgeleitener Klasse nicht selber dazu malen ?
Ich habe z.B. eine neue Klasse Anzeige von QLabel abgeleitet.
Jetzt möchte ich selber was dazu malen.
Sobald ich aber QPaintEvent einbaue, wird das original Label nicht mehr angezeigt.
Oder ist das mal wieder der typische Anfängerfehler.
Vielen Dank
Herbert
QPaintEvent in abgeleitenen Klassen
Das ist ein typischer Fehler, aber eher in die Kategorie "C++ Grundlagen" einzuordnen.
Wenn man ableitet und in einer eigenen Funktion die Funktionalität der Basisklasse erhalten möchte, muss man die an geeigneter Stelle in der Funktion einfach aufrufen:
Du kannst mal das "QLabel::paintEvent(e);" hinter die eigenen Zeichenanweisungen schieben und schauen was passiert 
Wenn man ableitet und in einer eigenen Funktion die Funktionalität der Basisklasse erhalten möchte, muss man die an geeigneter Stelle in der Funktion einfach aufrufen:
Code: Alles auswählen
#include <QLabel>
#include <QApplication>
#include <QPainter>
#include <QPixmap>
class QPaintEvent;
class Label : public QLabel {
void paintEvent(QPaintEvent* e) {
QLabel::paintEvent(e);
QPainter p(this);
p.setPen(Qt::black);
p.drawText(10, 20, "Hello. world");
}
};
int main(int argc, char** argv) {
QApplication app(argc, argv);
Label l;
l.setPixmap(QPixmap("/Pfad/zum/Bild.jpg"));
l.show();
return app.exec();
}