Qt截取窗口到保存到图片


方法1:

    QScreen *screen = QGuiApplication::primaryScreen();

    if (screen)

      QPixmap  originalPixmap = screen->grabWindow(0);

方法2:

QDesktopWidget * pDesktoWidget = QApplication::desktop();
QScreen * pqscreen  = QGuiApplication::primaryScreen() ;
QPixmap pixmap = pqscreen->grabWindow( pDesktoWidget->winId(), 0,0,500,500 );
  QPainter paint1(this);
        paint1.drawPixmap(0,0,pixmap.width(),pixmap.height(), pixmap );


关于:QPixmap QScreen::grabWindow(WId window, int x = 0, int y = 0, int width = -1, int height = -1);

从参数可以看出,可以获取任何ui界面的任意大小矩形范围保存到图片;


QScreen 没有public构造函数,所以需要QGuiApplication::primaryScreen() 返回QScreen指针;


方法3:

QPixmap::grabWidget

你可能感兴趣的:(QT)