Qt快捷屏幕截图

介绍两种Qt屏幕截图的方法。

方法1

  • 接口:

    1
    2
    3
    4
    5
    QPixmap QScreen::grabWindow(WId window, 
    int x = 0,
    int y = 0,
    int width = -1,
    int height = -1)
  • 示例:

    1
    2
    QScreen *screen = QGuiApplication::primaryScreen();
    screen->grabWindow(0).save("screen_shot.jpg", "jpg"); // 0值为整个电脑屏幕WId
  • 可以通过设置x,y坐标位置和width,height的大小来截图。

方法2

  • 接口:

    1
    2
    QPixmap QWidget::grab(const QRect &rectangle = QRect(QPoint(0, 0), 
    QSize(-1, -1)))
  • 示例:

    1
    2
    QWidget widget;
    widget.grab().save("screen_shot.jpg", "jpg");
  • 和QScreen的grabWindow一样可以通过设置坐标位置和窗口的大小来截图。