`
duyouhua1214
  • 浏览: 236753 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

QT实现截取屏幕

    博客分类:
  • QT
 
阅读更多

本文阐述了一个在Qtopia下截取屏幕的方法,实际上Qtopia和QT都支持帧缓冲技术,我们可以将帧缓冲的数据读出来即为屏幕数据。但是这种方法需要对设备驱动的了解,而且实现起来不那么方便。这里介绍利用QT库中自带的grabWidget与grabWindow函数截取屏幕的方法。
两个函数的原型如下:
QPixmap QPixmap::grabWindow ( WId window, int x=0, int y=0, int w=-1, int h=-1 )
WId表示被截取窗口的ID号;
x,y表示截取范围的起始作标;
w,h分别表示截取范围的宽度和高度,如果为-1,则表示全部截取。

QPixmap QPixmap::grabWidget ( QWidget * widget, int x=0, int y=0, int w=-1, int h=-1 )
widget表示被截取窗口的画布部分,其余参数同grabWindow

下面这段代码实现了当前整个窗口的截取。
    QPixmap pixmap;  
    //QT库中的图形类,可以处理QT支持的所有图形类型,如JPG,BMP等
    QPixmap pix;
    pix=pixmap.grabWindow(this->winId(),0,0,-1,-1);    
    //this->winId()为获得当前窗口ID
    if(pix.isNull())
    {
        QMessageBox::information(this,"error","grab Screen failed",QMessageBox::Ok);
    }
    else
    {
        if(pix.save( "/tmp/grab.bmp", "BMP" )==false)
        {
            QMessageBox::information(this,"right","save error",QMessageBox::Ok);
        }
        else
            QMessageBox::information(this,"Grab","bitmap saved as /tmp/grab.bmp",QMessageBox::Ok);
    }

将grabWindow改为grabWidget即可实现画布数据的采集。

 

 

来源:http://hi.baidu.com/hisic/blog/item/f88b66ecbbeabcdcb31cb186.html

分享到:
评论

相关推荐

    [Qt]Qt实现简易截图工具

    在本文中,我们将深入探讨如何使用Qt框架来实现一个简易的截图工具,该工具具有显示截图区域大小、可任意拖动截图区域以及四个边框可拖拽修改大小的功能。Qt是一个跨平台的应用程序开发框架,广泛应用于桌面和移动...

    qt实现windows下屏幕录制

    2.支持特定屏幕区域录制 3.支持录屏质量修改,质量越高,录制单位时间生成的avi文件越大 4.支持帧率选择,最高24帧每秒 5.增加自动分割avi文件功能,在24帧每秒录制的设置下,每个avi文件时长1分钟 6.通过多线程将...

    Qt 之 实现简单截图功能(一)

    总的来说,Qt提供了一套完整的API来实现屏幕截图功能,包括获取屏幕图像、用户交互、图像处理和文件保存等。通过学习和实践,开发者可以灵活地构建出各种截图应用,满足不同需求。在实际项目中,还可以考虑添加更多...

    qt5.9 截图程序实现 无马赛克功能

    在本文中,我们将深入探讨如何使用Qt 5.9库来实现一个无马赛克功能的截图程序。Qt是一个跨平台的应用程序开发框架,广泛应用于桌面、移动和嵌入式设备,提供了丰富的图形用户界面(GUI)功能。下面,我们将讨论实现...

    用Qt实现屏幕截取功能

    以上就是使用Qt实现屏幕截取功能的基本流程和关键知识点。通过这个项目,你可以深入理解Qt的图形系统和事件处理机制,同时也可以锻炼C++编程能力。记得在实际编码过程中遵循良好的编程实践,保持代码清晰易读。

    基于qt的截图工具,实现截图后进行多种编辑,采用仿QQ截图控制面板

    【标题】中的“基于qt的截图工具”是指利用Qt这一跨平台的应用程序开发框架来创建一个屏幕截图应用程序。Qt是一个强大的C++库,提供了一系列的工具、类库和API,用于构建用户界面和桌面应用程序。它支持Windows、...

    Qt实现截图保存功能源码(类QQ切割头像大小)

    在本文中,我们将深入探讨如何使用Qt框架来实现一个类似于QQ头像裁剪的功能,包括动态截图和保存图片到本地。Qt是一个强大的跨平台应用程序开发框架,广泛应用于GUI编程,其丰富的API使得实现复杂的图形界面功能变得...

    Qt 实现截图小工具

    在本文中,我们将深入探讨如何使用Qt框架实现一个简单的截图小工具,类似于QQ的截图功能。虽然这个小工具的功能可能不那么全面,但它提供了基本的框架,对于初学者或者希望快速构建截图功能的开发者来说,是一个很好...

    Qt实现的截图工具源码分享

    本资源提供了使用Qt实现的截图工具的源码和可执行程序,对于学习Qt GUI编程以及理解截图功能的实现机制极具价值。 在Qt中,我们可以利用QApplication、QWidget、QPainter等类来构建用户界面,并通过QGraphicsView和...

    使用QT实现QQ截图功能范例

    【QT实现QQ截图功能详解】 在QT框架下实现QQ截图功能,主要涉及到窗口捕捉、图像处理和用户交互等技术。本教程将详细讲解如何利用QT 5.11.1版本来开发这样一个实用的截图工具。 1. **窗口捕捉**: 在QT中,我们...

    qt 屏幕截图

    "qt 屏幕截图"这个主题涉及到的是使用Qt库来实现屏幕捕捉的功能。以下是对这个知识点的详细说明: Qt库提供了一组丰富的类和函数,使得开发者能够方便地实现屏幕截图功能。其中,`QGuiApplication` 和 `QScreen` 类...

    Qt实现简单的截图功能

    在本文中,我们将深入探讨如何使用Qt框架来实现一个简单的截图功能,类似于QQ截图工具。Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的API和工具,使得开发这种类型的桌面应用变得轻松易行。 ...

    很好用的截图小工具,QT实现

    QT截图工具是一款基于QT库开发的实用截图软件,它提供了丰富的功能,且在Windows XP系统上表现良好。QT(Qt)是Nokia公司推出的一种跨平台应用程序开发框架,被广泛应用于桌面、移动设备以及嵌入式系统的软件开发,...

    Qt屏幕截图工具源码

    通过这个项目,开发者不仅可以学习到Qt的基本用法,还能深入理解如何利用Qt实现图形用户界面交互,以及如何处理图像数据。对于希望在桌面应用开发领域有所建树的程序员来说,Qt屏幕截图工具源码是一个非常有价值的...

    Qt截屏实现

    "Qt截屏实现"项目是利用Qt库构建的一个功能类似QQ截图的工具。它具备了截图、缩放、保存以及取消等核心功能,使得用户可以方便地捕获并处理屏幕图像。 首先,我们来详细探讨Qt中的关键知识点: 1. **QWidget和...

    基于QT4的屏幕截图(附有源代码)

    - QT4已更新至QT5和QT6,虽然QT4仍然可用,但新的版本可能提供了更高效、更简洁的方法来实现屏幕截图。 - 考虑到兼容性和性能,使用最新的QT版本进行开发通常是更好的选择。 通过这个基于QT4的屏幕截图程序,...

    QT版截图工具源码

    QT版截图工具源码是一种基于QT框架开发的图形用户界面应用程序,主要用于捕获屏幕图像。QT是一个跨平台的C++库,它提供了丰富的功能来创建桌面应用、移动应用以及嵌入式系统的用户界面。QT版截图工具利用了QT库中的...

    qt实现类似qq截图功能

    在本文中,我们将深入探讨如何使用Qt...总之,使用Qt实现类似QQ截图的功能涉及多个组件和技术,包括窗口管理、图形视图、图像处理和事件处理。通过熟练掌握这些工具,你可以构建出一个功能完备且易于使用的截图工具。

    QT 屏幕截取程序源代码示例程序

    在标题提到的"QT 屏幕截取程序源代码示例程序"中,我们将探讨如何利用QT库中的功能来实现屏幕截图功能。在QT6和QT5版本中,这一功能主要通过`QScreen`和`QGuiApplication`类来实现。 首先,要进行屏幕截图,我们...

    qt 屏幕截屏 window linux

    本项目标题“qt 屏幕截屏 window linux”表明我们将探讨如何使用Qt库来实现跨平台的屏幕截图功能。 在Qt中,我们可以使用`QScreen`类来获取系统屏幕的信息,如分辨率和设备像素比。要实现屏幕截图,首先需要获取主...

Global site tag (gtag.js) - Google Analytics