2011-06-02 38 views
2

我试图呈现一个QWebElement到QWidget的,但我的应用程序崩溃,但是如果我渲染成一个QImage的一切都很正常。渲染QWebElement成一个QWidget崩溃我的应用程序

这里是我的代码:

// using this code my application is crashing 
void ImageWidget::paintEvent(QPaintEvent *) 
{ 
    if (this->imgElement != NULL) 
    { 
     QPainter p(this); 
     this->imgElement->render(&p); 
     p.end(); 
    } 
} 

// using this one everything works OK 
void ImageWidget::saveImage(QWebElement *el) 
{ 
    this->imgElement = el; 
    QImage m_image = QImage(290, 80, QImage::Format_ARGB32_Premultiplied); 
    m_image.fill(Qt::transparent); 
    QPainter p(&m_image); 
    el->render(&p); 
    p.end(); 
    m_image.save("some_file.png", "png"); 
    this->update(); 
} 

我使用Qt 4.7.3在Win 7(64位)。让我知道我该如何解决这个问题。

+0

在'QImage'示例中'm_image'是为了'ImageWidget'的成员? – Troubadour 2011-06-02 18:55:26

回答

0

我不会推荐在绘画事件上渲染webelemnt。 Paint事件可以被触发以经常使用,或者需要在Widget上只绘制微小的矩形。

更好的是有图像缓冲并更新网页元素更改。至少你可以尝试写“render(painter,paintEvent-> rect());”