画面のスクリーンショットを撮るには

Qtで画面のスクリーンショットを取得するにはQScreenを使います。

例えば全画面のスクリーンショットを撮りたいなら次のようにします。

    QPixmap screenPixmap = QPixmap();
    QScreen * screen = QGuiApplication::primaryScreen();
    QRect screenRect = QApplication::desktop()->screenGeometry();
    int width = screenRect.width();
    int height = screenRect.height();
    if (screen != 0)
        screenPixmap = screen->grabWindow(0, 0, 0, width, height);
        
    /// スクリーンショットを1/2倍スケールで表示
    screenPixmap = screenPixmap.scaled(width / 2, height / 2);
    QLabel screenshotLable;
    screenshotLable.setPixmap(screenPixmap);
    screenshotLable.show();

これを実行すると次のようにスクリーンショットが取得できます。

スクリーンショット

スクリーンをキャプチャーするにはgrabWindowを使い、引数は次のように取ります。

QScreen::grabWindow([ウインドウID], [開始X座標], [開始Y座標], [幅], [高さ]);

座標や幅や高さは全てピクセル単位です。

もし、全画面を取得したい場合は第1引数以外は省略してもOKです。

screenPixmap = screen->grabWindow(0);

以上、画面のスクリーンショットを撮る方法でした。では、また。

関連項目
プライバシーポリシー