Qt实现桌面截屏

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gx864102252/article/details/72885443

实现桌面截屏,软件如下:
这里写图片描述
图1 桌面截屏
主要介绍一个方法

grabWindow(WId window, int x = 0, int y = 0, int width = -1, int height = -1)

创建并返回一个QPixmap,通过抓取给定窗口的内容(x、y、width、height)。
参数(x、y)指定窗口中的偏移量,而(width、height)指定要复制的区域。如果宽度为负,则函数将所有内容复制到窗口的右边界。如果高度为负,则该函数将所有内容复制到窗口的底部。
可以使用QWidget::winId()函数检索窗口系统标识符(WId)。使用窗口标识符而不是QWidget的基本原理是,允许抓取不属于应用程序、窗口系统框架的窗口,等等。
grabWindow()函数从屏幕中抓取像素,而不是从窗口中获取像素,也就是说,如果有另一个窗口在你抓取的那个窗口中有部分或全部的部分,你也会从覆盖的窗口获取像素。鼠标光标一般不会被抓取。
警告:一般来说,在屏幕外抓取一个区域是不安全的。这取决于底层的窗口系统。

主要实现代码:

    m_pixmap = QPixmap::grabWindow(QApplication::desktop()->winId());
    m_showPicLabel->setPixmap(m_pixmap);
    m_showPicLabel->setScaledContents(true);
    m_showPicLabel->show();
展开阅读全文

没有更多推荐了,返回首页