Я написал программу для экспериментов с poppler pdf library.
Я могу отобразить PDF-страницы в graphicsView с помощью метода:
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 <200; i ++) {setPage (i);}
ничего не отображается, пока цикл не дойдет до конца, а затем видна только последняя страница.
В чем дело?
Я попытался с msleep (500) в пользовательском классе потока, и попытался также вызвать paintEvent для graphicsView.
Может помочь? </p>