1
我編寫了一個程序來實驗poppler pdf庫。 我能夠顯示PDF頁面與方法的graphicsView:QT4 QgraphicsView不會在顯示很多頁面的「for循環」中重新繪製
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;我< 200 ; i ++){setPage(i);} 直到循環結束時才顯示任何內容,然後只顯示最後一頁。 有什麼問題? 我嘗試用自定義線程類中的msleep(500),並嘗試爲graphicsView調用paintEvent。 可以幫忙嗎?