| 
 | 
 
 
- //打印出图
 - 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);
 - }
 - }
 
  
 
 
 |