QT4 QgraphicsView未在“a”中重新绘制;对于“循环”;显示多个页面的方法

QT4 QgraphicsView未在“a”中重新绘制;对于“循环”;显示多个页面的方法,qt4,qgraphicsview,repaint,Qt4,Qgraphicsview,Repaint,我写了一个程序来试验poppler pdf库。 我能够通过以下方法将pdf页面显示到图形视图中: void MainWindow::setPage(int newpage) { pdfPage = document->page(newpage); if (pdfPage == 0) { // ... error message ... return; } // Generate a QImage of the rendered page image = pdfPage->

我写了一个程序来试验poppler pdf库。 我能够通过以下方法将pdf页面显示到图形视图中:

void MainWindow::setPage(int newpage)
{

 pdfPage = document->page(newpage);
if (pdfPage == 0) {
  // ... error message ...
  return;
}

// Generate a QImage of the rendered page
image = pdfPage->renderToImage(100.0,100.0,0,0,pdfPage->pageSize().width(),pdfPage->pageSize().height());
if (image.isNull()) {
  // ... error message ...
  return;
}

pixmap=QPixmap::fromImage(image);
scene->clear();
scene->addPixmap(pixmap);
this->ui->graphicsView->setScene(scene);
this->ui->graphicsView->repaint(); //the same with show(), invalidate scene()
// after the usage, the page must be deleted
delete pdfPage;

}
通过单次呼叫或在插槽中进行控制 但是如果我写一个像这样的循环
对于(i=0;i您不能使小部件在循环中重新绘制自身。为了使小部件(或图形项)绘制自身,控件必须在每次小部件的外观更改时返回事件循环。有关详细信息,请参阅及其答案