繁体   English   中英

在Qt上从所选区域(QRubberBand)截取屏幕截图

[英]Taking a screenshot from the selected area(QRubberBand) on Qt

我正在尝试创建一个Qt应用程序来从屏幕上的选定区域截取屏幕截图。 目前我正在使用QRubberBand来选择屏幕区域。 它的工作原理如下。

  1. 单击“捕获”按钮时,将弹出覆盖透明小部件(全屏但没有框架)
  2. 我正在使用QRubberBand在透明小部件上选择一个区域。

现在我必须截取我选择的部分的屏幕截图。

我想我必须将选择QRubberBand的尺寸传递给:

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

那么如何从QRubberBand获取我需要的信息? 我被困在这里,所以有人请帮助我!

在你OnMouseRelease事件中,你可以得到的矩形QRubberBand使用geometry() 接下来使用QRect::getRect您可以将矩形左上角的位置提取到x和y,并将其尺寸提取到宽度和高度。

const QRect & selectRect = mRubberBand->geometry();
int x, y, width, height;
selectRect.getRect(&x, &y, &width, &height);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM