Seite 1 von 1

Drucken ohne QPrintPreviewDialog

Verfasst: 10. Oktober 2008 09:57
von escor
Hallo, momentan kann ich in meiner Anwendung drucken, das ganze passiert dann über den Drucken knopf im QPrintPreviewDialog. Jetzt ist meine Frage ob das ganze auch möglich ist ohne den Dialog anzuzeigen. Also dass er gleich auf den Standart Drucker druckt. Kennt dort jemand eine Möglichkeit. Ich konnte bisher nix finden.

So sieht es bisher bei mir aus.

Code: Alles auswählen

void nfd::printKladde( void ) {
	QPrinter printer( QPrinter::HighResolution );
	QPrintPreviewDialog preview( &printer, this );
	printer.setOrientation( QPrinter::Landscape );
	connect( &preview, SIGNAL( paintRequested( QPrinter* ) ), SLOT( drawKladde( QPrinter* ) ) );
	preview.showMaximized();
	preview.exec();
}

void nfd::drawKladde( QPrinter *printer ) {
	int minx = 300;
	int miny = 300;
	QPainter painter( printer );
	QFont font = painter.font();
	...

Verfasst: 10. Oktober 2008 10:18
von escor
Ich hab ein wenig im Qt Quelltext gestöbert und bin selber auf eine Lösung gekommen.

QPrintPreviewDialog preview( &printer, this );
wird einfach durch
QPrintPreviewWidget preview( &printer, this );
ersetzt.

Ebenfalls wird
preview.showMaximized();
preview.exec();

durch
preview.print();
ersetzt.

Code: Alles auswählen

void nfd::printKladde( void ) {
	QPrinter printer( QPrinter::HighResolution );
	QPrintPreviewWidget preview( &printer, this );
	printer.setOrientation( QPrinter::Landscape );
	connect( &preview, SIGNAL( paintRequested( QPrinter* ) ), SLOT( drawKladde( QPrinter* ) ) );
	preview.print();
}

void nfd::drawKladde( QPrinter *printer ) {
	int minx = 300;
	int miny = 300;
	QPainter painter( printer );
	QFont font = painter.font();
	...