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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-12-30 09:07:13

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

QT4 C++ wydruk obrazków

Więc tak naskrobałam sobie taki kod

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

 

#2  2011-01-08 22:24:22

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

Re: QT4 C++ wydruk obrazków

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

Kod:

/*
 * 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

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)