在Qt上截取选定区域(QRubberBand)的屏幕截图



我试图创建一个Qt应用程序从屏幕上选定的区域截图。现在我用QRubberBand来选择屏幕的一个区域。它是这样工作的。

  1. 当点击Capture按钮时,将弹出一个覆盖透明小部件(全屏但没有帧)
  2. 我正在使用QRubberBand来选择透明小部件上的一个区域。

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

我想我必须把我从选择QRubberBand得到的尺寸传递给这个:

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

那么我如何从QRubberBand获得我需要的信息呢?我被困在这里了,谁来帮帮我吧!

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

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

最新更新