Ruslan Polupan
12 июня 2019 г. 19:05

Вывод на печать точного содержимого QTableView (QTableWidget)

Доброго времени суток.
Снова в качестве заметки.
Возникла необходимость выводить на печать точную копию содержимого QTableWidget c делегатами и т.д.
Получилось следующее:


  1. void FinalPage::on_pushButtonPrint_clicked()
  2. {
  3.  
  4. int width = 0;
  5. int height = 0;
  6. int columns = ui->tableWidgetName->columnCount();
  7. int rows = ui->tableWidgetName->rowCount();
  8.  
  9. for( int i = 0; i < columns; ++i ) {
  10. width += ui->tableWidgetName->columnWidth(i);
  11. }
  12.  
  13. for( int i = 0; i < rows; ++i ) {
  14. height += ui->tableWidgetName->rowHeight(i);
  15. }
  16.  
  17. ui->tableWidgetName->setFixedSize(width, height);
  18. ui->tableWidgetName->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  19. ui->tableWidgetName->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  20.  
  21. QPrintPreviewDialog *prDialog = new QPrintPreviewDialog(&printer, this);
  22.  
  23. ui->tableWidgetName->render(&printer);
  24.  
  25. connect(prDialog,&QPrintPreviewDialog::paintRequested,this,&FinalPage::printPreviewNeeds);
  26.  
  27. prDialog->showMaximized();
  28. prDialog->exec();
  29.  
  30. }
  31.  
  32. void FinalPage::printPreviewNeeds(QPrinter *)
  33. {
  34. ui->tableWidgetName->render(&printer);
  35. }

По статье задано0вопрос(ов)

2

Вам это нравится? Поделитесь в социальных сетях!

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь