void MainWindow::on_pushButton_clicked() { int current_tab = this->ui->tabWidget->currentIndex(); QPrinter printer; QTableView *myWidget; switch(current_tab) { case TABLE::StudentsTableTab: myWidget = this->ui->StudentsTableView; break; case TABLE::TeachersTableTab: myWidget = this->ui->TeachersTableView; break; default: return; } QPixmap pix = myWidget->grab(); QPainter painter; printer.setResolution(QPrinter::HighResolution); printer.setPageMargins (15,15,15,15,QPrinter::Millimeter); painter.begin(&printer); double xscale = printer.pageRect().width()/double(myWidget->width() + 50); double yscale = printer.pageRect().height()/double(myWidget->height() + 50); double scale = qMin(xscale, yscale); painter.scale(scale, scale); painter.drawPixmap(0, 0, pix); painter.end(); myWidget->render(&painter); }