Ruslan Polupan
June 12, 2019, 7:05 p.m.

Printing the exact contents of a QTableView (QTableWidget)

Good day.
Again as a note.
There was a need to print an exact copy of the contents of QTableWidget with delegates, etc.
It turned out the following:


  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. }

By article asked0question(s)

2

Do you like it? Share on social networks!

Comments

Only authorized users can post comments.
Please, Log in or Sign up
  • Last comments
  • AK
    April 1, 2025, 11:41 a.m.
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    March 9, 2025, 9:02 p.m.
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    March 9, 2025, 4:14 p.m.
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
  • ИМ
    Nov. 22, 2024, 9:51 p.m.
    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
  • Evgenii Legotckoi
    Oct. 31, 2024, 11:37 p.m.
    Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup