我试图创建一个Qt应用程序从屏幕上选定的区域截图。现在我用QRubberBand来选择屏幕的一个区域。它是这样工作的。
- 当点击Capture按钮时,将弹出一个覆盖透明小部件(全屏但没有帧) 我正在使用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);