[QT] Drukowanie QTableWidget
Ostatnio zmodyfikowano 2015-02-25 22:23
soket Temat założony przez niniejszego użytkownika |
[QT] Drukowanie QTableWidget » 2015-02-22 17:54:35 Witam Chciałem w swojej aplikacji dać użytkownikom możliwość wydrukowania tabeli(QTableWidget) do pdf. Problem w tym że tabela ma 50 wierszy i 8 kolumn które nie mieszczą się na ekranie, a na wydruku widać tylko to co jest aktualnie na ekranie. Tak wygląda kod: void Program::on_drukuj_clicked() { QPrinter printer; QPrintDialog printer_dialog( & printer ); if( printer_dialog.exec() == QDialog::Accepted ) { QPainter painter( & printer ); painter.scale( 0.5, 0.5 ); ui->tabelaRez->render( & painter ); } }
Czy istnieje możliwość aby wydrukować np. wiersze od 20 do 40 i tylko 4 kolumny? |
|
turaz |
» 2015-02-22 20:37:52 |
|
soket Temat założony przez niniejszego użytkownika |
» 2015-02-25 22:23:46 Dzięki za linki. Gdyby ktoś kiedyś stanął przed podobnym problemem do rozwiązania to podaje tu swoją wersję. void Program::on_drukuj_clicked() { QPrinter printer; QPrintDialog printer_dialog( & printer ); if( printer_dialog.exec() == QDialog::Accepted ) { QPainter painter( & printer ); QTableView * pTableView = new QTableView; pTableView->setModel( ui->tabelaRez->model() ); int width = 0; int height = 0; int columns = 10; int rows = 50; painter.scale( 0.75, 0.75 ); for( int i = 0; i < columns; ++i ) { width += pTableView->columnWidth( i ); } for( int i = 0; i < rows; ++i ) { height += pTableView->rowHeight( i ); } width += 100; height += 100; pTableView->setFixedSize( width, height ); pTableView->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); pTableView->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); pTableView->render( & painter ); } }
|
|
« 1 » |