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

QPrintPreviewDialog, QTableView, print, QTableWidget, Qt

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

void FinalPage::on_pushButtonPrint_clicked()
{

    int width = 0;
    int height = 0;
    int columns = ui->tableWidgetName->columnCount();
    int rows = ui->tableWidgetName->rowCount();

    for( int i = 0; i < columns; ++i ) {
        width += ui->tableWidgetName->columnWidth(i);
    }

    for( int i = 0; i < rows; ++i ) {
        height += ui->tableWidgetName->rowHeight(i);
    }

    ui->tableWidgetName->setFixedSize(width, height);
    ui->tableWidgetName->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    ui->tableWidgetName->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

    QPrintPreviewDialog  *prDialog = new QPrintPreviewDialog(&printer, this);

    ui->tableWidgetName->render(&printer);

    connect(prDialog,&QPrintPreviewDialog::paintRequested,this,&FinalPage::printPreviewNeeds);

    prDialog->showMaximized();
    prDialog->exec();

}

void FinalPage::printPreviewNeeds(QPrinter *)
{
    ui->tableWidgetName->render(&printer);
}
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Комментарии

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

Здравствуйте, уважаемые пользователи EVILEG !!!

Если сайт вам помог, то поддержите разработку сайта финансово, пожалуйста.

Вы можете сделать это следующими способами:

Спасибо, Евгений Легоцкой

ЛП
12 ноября 2019 г. 8:22
Лев Пархимович

C++ - Тест 006. Перечисления

  • Результат:50баллов,
  • Очки рейтинга-4
ЛП
12 ноября 2019 г. 7:35
Лев Пархимович

C++ - Тест 005. Структуры и Классы

  • Результат:66баллов,
  • Очки рейтинга-1
ЛП
12 ноября 2019 г. 7:26
Лев Пархимович

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:50баллов,
  • Очки рейтинга-4
Последние комментарии
b
9 ноября 2019 г. 8:28
bastonc

спасибо ещё раз. огромное, за уделённое время
b
9 ноября 2019 г. 8:24
bastonc

Спасибо Вам большое. Буду изучать.
9 ноября 2019 г. 5:58
Евгений Легоцкой

Добрый день. По первым двум вопросам вы найдёте ответ в этой статье - PyQt5 - Урок 008. Работа с QTableWidget (Обновление урока 006) Что касается последнего вопроса, то я вам…
9 ноября 2019 г. 2:50
Евгений Легоцкой

Как и обещал, вы можете посмотреть новую статью QML - Урок 037. Кастомизация кнопок в QML (Обновление урока 002) . Там же найдёте ссылку на Git репозиторий. Не забудьте поставить звёз…
b
8 ноября 2019 г. 7:40
bastonc

Приветствую. Подскажите пожалуйста пару моментов. 1. Как сделать столбец не редактируемый, а остальные ячейки остаются редактируемыми 2. Как оталвливать события двойного клика для реда…
Сейчас обсуждают на форуме
KZ
13 ноября 2019 г. 10:07
Konstantin Znamenskii

Добрый день. Я хочу узнать, как наиболее грамотно обновлять Maintenance Tool у пользователя. Я периодически выкладываю обновления пакетов самой программы, но мне также нужно вносить изменения в …
13 ноября 2019 г. 9:33
Pavel.K

Приложение трэкинг задач. Есть вложения. Добавляем вложение и отправляем его на сервер. Для синхронного вызова методов в синхронизации, используем QEventLoop при отправке вложений. В момент син…
13 ноября 2019 г. 6:41
Ruslan Polupan

Ну ка кбы уже лет 10 как работает :-) Просто нужна отдельная прога для добавления таких записей, отдать клиентам чтобы мозг не парили....
13 ноября 2019 г. 3:13
Евгений Легоцкой

Добрый день. Думаю, что да. Выбранный стиль можно подгружать при запуске программы. Во всяком случае, есть такой пример на C++ - Controls Gallery . И там есть такой код #incl…
12 ноября 2019 г. 9:35
Евгений Легоцкой

Добрый день. Для корректной вставки ссылок на youtube вставляйте их через пустую строку, таким образом Первая ссылка Вторая ссылкаТретья ссылка
EVILEG
О нас
Услуги
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB