|
- //打印出图
- void OsgMainWindow::printSlot()
- {
- QPrinter printer;
- QPixmap originalPixmap;
- int width,height;
- width = QApplication::desktop()->size().width();
- height = QApplication::desktop()->size().height();
- QScreen *screen = QApplication::primaryScreen();
- if(screen)
- originalPixmap = screen->grabWindow(0);
- QPrintDialog* printDialog = new QPrintDialog(&printer,this);
- if(printDialog->exec()){
- //printDialog->move(600,600);
- QPainter painter(&printer);
- QRect rect = painter.viewport();
- QSize size = originalPixmap.size();
- size.scale(rect.size(), Qt::KeepAspectRatio);
- painter.setViewport(rect.x(), rect.y(),
- size.width(), size.height());
- painter.setWindow(originalPixmap.rect());
- painter.drawImage(0,0,originalPixmap);
- }
- }
|