画面のスクリーンショットを撮るには
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);
以上、画面のスクリーンショットを撮る方法でした。では、また。
関連項目
© Kaz