Qt實現(xiàn)窗口截圖功能
更新時間:2024年11月19日 10:39:59 作者:小gpt&
這篇文章主要為大家詳細介紹了如何使用Qt實現(xiàn)簡單的窗口截圖功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
截取窗口:適用做視頻通話截圖
QScreen *screen=QGuiApplication::primaryScreen(); QPixmap pixmap=screen->grabWindow(ui->widget->winId());//ui->widget->winId()你需要截圖的窗口id pixmap.save("./1.jpg","jpg");
全屏截圖
QScreen *screen = QGuiApplication::primaryScreen(); if (screen) { // 截取整個屏幕 QPixmap screenshot = screen->grabWindow(0); // 可選擇保存路徑和文件名 QString fileName = QFileDialog::getSaveFileName(nullptr, "保存截圖", QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".png", "Images (*.png *.xpm *.jpg)"); if (!fileName.isEmpty()) { // 保存截圖 screenshot.save(fileName); } }
全屏截圖加水印
QScreen *screen = QGuiApplication::primaryScreen(); if (screen) { // 截取整個屏幕 QPixmap screenshot = screen->grabWindow(0); // 創(chuàng)建 QPainter 對象在截圖上繪制 QPainter painter(&screenshot); // 設置水印樣式 painter.setPen(QColor(255, 0, 0, 128)); // 紅色,透明度為128 painter.setFont(QFont("Arial", 30, QFont::Bold)); // 添加水印文本 QString watermarkText = "小gpt"; painter.drawText(screenshot.rect(), Qt::AlignVCenter | Qt::AlignHCenter, watermarkText); // 結束繪制 painter.end(); // 可選擇保存路徑和文件名 QString fileName = QFileDialog::getSaveFileName(nullptr, "保存截圖", QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss") + ".png", "Images (*.png *.xpm *.jpg)"); if (!fileName.isEmpty()) { // 保存帶水印的截圖 screenshot.save(fileName); } }
到此這篇關于Qt實現(xiàn)窗口截圖功能的文章就介紹到這了,更多相關Qt窗口截圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Visual Studio 2019創(chuàng)建C++ Hello World項目的方法
這篇文章主要介紹了Visual Studio 2019創(chuàng)建C++ Hello World項目的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03