QT截取屏幕

作者:kakaka2011

转自:http://blog.csdn.net/love_gaohz/article/details/12441973


  1. QPixmap pixmap; //QT库中的图形类,可以处理QT支持的所有图形类型,如JPG,BMP等  
  2. QPixmap pix;  
  3. pix = pixmap.grabWindow(this->winId(),0,0,-1,-1);  
  4. //this->winId()为获得当前窗口ID  
  5. //pix = pixmap.grabWidget(this,0,0,-1,-1); //也可以用这个方法,他们两个区别仅仅是第一个参数不而已已  
  6. if(pix.isNull())  
  7. {  
  8.     QMessageBox::information(this,"error","grab Screen failed", QMessageBox::Ok);  
  9. else {  
  10.     if(pix.save("grab.jpg")==false)  
  11.     {  
  12.         QMessageBox::information(this,"right","save error", QMessageBox::Ok);  
  13.     } else  
  14.         QMessageBox::information(this,"Grab","bitmap saved as grab.bmp", QMessageBox::Ok);  
  15. }  

 

实现的主要方法是:

①用QPixmap的grabWindow去选取窗口抓取图片;

②然后用bool QPixmap::save(const QString & fileName, const char * format = 0, int quality = -1) const,命名保存抓取的图片。

注意点:

①:grabWidget表示被截取窗口的画布部分,grabWindow抓取的是带标题框的部分。

②grabWindow如果第一个参数是0,那么就是抓取的整个桌面。

 

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

 

※Qt5中是使用的 QScreen类,然后使用它的QPixmap QScreen::grabWindow(WId windowint x = 0, int y = 0, intwidth = -1, int height = -1)方法。

 

  1.    
  2. QScreen *screen = QGuiApplication::primaryScreen();  
  3. screen->grabWindow(this->winId(),0,0,-1,-1).save("captureImg.jpg","jpg"); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值