Qt5:Qt中屏幕或窗口截圖功能的實現

要想在Qt中實現屏幕或窗口截圖功能 ,一般有兩種方法:函數

  1  -- 使用 QPixmap 類
ui

  2  -- 使用 QScreen類
spa

然而雖然倆兩種方法用到的類不相同,可是調用到的類成員函數的函數名稱和參數倒是相同的code

都是 grabWindow() 這個函數 blog

所不一樣的是,QPixmap中的 grabWindow()函數 是靜態成員io

QScreen中的grabWindow()成員是非靜態成員class

下面展現兩種截屏的方法構造函數

QPixmap方法map

 

//截屏並保存爲 123.jpg
QPixmap::grabWindow(QApplication::desktop()->winId()).save("123","jpg");
/****************************************************************
要注意的是 QApplication::desktop()->winId(),返回的是
要截屏的窗口的ID , 設爲0 表示當前桌面 ,截屏時就會截全屏
******************************************************************/

    注:這種方法在Qt5中已通過時 , 應該使用QScreen方法代替方法

QScreen方法

1 //功能一樣是截屏 , 注:QScreen的構造函數是私有的
2 QScreen *screen = QGuiApplication::primaryScreen();
3 screen->grabWindow(0).save("123","jpg");
相關文章
相關標籤/搜索