Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Więc tak naskrobałam sobie taki kod
/* * slot odpowiedzialny za podglad wydruku */ void MainWindow::PrintPreview() { QPrinter printer( QPrinter::HighResolution ); QPrintPreviewDialog preview( &printer, this ); connect( &preview, SIGNAL(paintRequested(QPrinter*)), SLOT(PrintPrepare(QPrinter*)) ); preview.exec(); } /* * slot odpowiedzialny za okno dialogowe drukarek */ void MainWindow::PrintDialog() { QPrinter printer( QPrinter::HighResolution ); QPrintDialog dialog( &printer, this ); if ( dialog.exec() == QDialog::Accepted ) PrintPrepare( &printer ); } /* * slot odpowiedzialny za przygotowanie wydruku */ void MainWindow::PrintPrepare( QPrinter* printer ) { QRectF rectangle(40.0, 60.0, 7500.0, 3500.0); QPainter painter(printer); painter.drawRect(rectangle); painter.drawEllipse(rectangle); }
Narysowałam sobie kułeczko z kwadracikiem i tak ładnie na podglądzie ono jest :] ale jak w tym oknie dialogowym dam drukowanie to ten obrazek się nie drukuje :/ wychodzi biała kartka
Ma ktoś jakiś pomysł na rozwiązanie tego problemu?
Offline
Rozwiązałam ;p
Dla potomnych tworzymy obiekt QImage o określonych parametrach czyli rozmiar + format kolorów tworzymy obiekt QPainter podając referencje do naszego obrazka rysujemy co trzeba (jeszcze nie wyczaiłam jak zmieniać część parametrów jak grubość kreski itp) i następnie każemy wrysować nasz obrazek na obiekcie którego celem jest drukarka
Sory za nie ładne wysławianie się ale ja programerem nie jestem :P
/* * slot odpowiedzialny za podglad wydruku */ void MainWindow::PrintPreview() { QPrinter printer( QPrinter::HighResolution ); printer.setPageSize( QPrinter::A4 ); QPrintPreviewDialog preview( &printer, this ); connect( &preview, SIGNAL(paintRequested(QPrinter*)), SLOT(PrintPrepare(QPrinter*)) ); preview.exec(); } /* * slot odpowiedzialny za okno dialogowe drukarek */ void MainWindow::PrintDialog() { QPrinter printer( QPrinter::HighResolution ); printer.setPageSize( QPrinter::A4 ); QPrintDialog dialog( &printer, this ); if ( dialog.exec() == QDialog::Accepted ) PrintPrepare( &printer ); } /* * slot odpowiedzialny za przygotowanie wydruku */ void MainWindow::PrintPrepare( QPrinter* printer ) { QRectF rectangle(10.0, 60.0, 800.0, 800.0); QPainter p(printer); QImage img(1256, 1256,QImage::Format_RGB32); img.fill(QColor(Qt::white).rgb()); QPainter painter(&img); QColor mc; mc.setRgb(140,0,0); painter.drawText(0, 0, "ble ble ble :"); painter.drawRect(rectangle); painter.drawEllipse(rectangle); painter.paintEngine(); painter.drawLine(20,20, 800, 800); p.drawImage(0,0, img); }
Offline