QT4 eigene widgetklasse von QFrame ableiten



  • Hallo,

    ich wollte eine eigene widgetklasse von qframe ableiten, was soweit auch klappt, nur wird kein frame gemalt, sondern nur mein eigens zeug.
    kann es sein das ich der paintEvent funktion sagen muss, dass auch noch die orginale version von QFrame aufgerufen werden muss. und falls ja, wie mache ich das?

    QitwebDisplay::QitwebDisplay(QWidget *parent, int width, int height, int sizeFactor)
     : QFrame(parent)
    {
        pixelSize = sizeFactor;
        setLineWidth(5);
        setFrameStyle(QFrame::Box | QFrame::Sunken);
        resize(width*pixelSize, height*pixelSize);
        setPalette(QPalette(Qt::white));
    }
    
    void QitwebDisplay::paintEvent(QPaintEvent *event)
    {
        QPainter painter(this);
        painter.setPen(Qt::NoPen);
        painter.setBrush(Qt::blue);
        painter.drawRect(QRect(33*pixelSize, 10*pixelSize, pixelSize, pixelSize));
    }
    


  • Wie wäre es mal mit paintEvent von QFrame aufzurufen?



  • Das sag ich doch, nur hat es nicht funktioniert, als ich
    QFrame::paintEvent(event);
    am ende aufgerufen habe. wenn ich es direkt zu beginn aufrufe geht das. Kann mir jemand sagen warum?



  • Bei QFrame (zumindest bei Qt3) funktioniert das zeichnen anders.
    Du musst die Funktion drawContents definieren bzw. dorthinein
    deine Ausgaben legen.
    Denn diese wird beim Zeichnen automatisch aufgerufen.
    Ein Neuzeichnen erreichst du durch den Aufruf von update().


Anmelden zum Antworten