我正在尝试创建一个Qt应用程序来从屏幕上的选定区域截取屏幕截图.目前我正在使用QRubberBand来选择屏幕区域.
它的工作原理如下.
>单击“捕获”按钮时,将弹出覆盖透明小部件(全屏但没有框架)
>我正在使用QRubberBand在透明小部件上选择一个区域.
现在我必须截取我选择的部分的屏幕截图.
我想我必须将选择QRubberBand的尺寸传递给:
screen-> grabWindow(WId window,int x = 0,int y = 0,int width = -1,int height = -1);
那么如何从QRubberBand获取我需要的信息?
我被困在这里,所以有人请帮助我!
最佳答案 在OnMouseRelease事件中,您可以使用geometry()获取QRubberBand的矩形.接下来使用QRect :: getRect,您可以将矩形左上角的位置提取到x和y,并将其尺寸提取到宽度和高度. :
const QRect & selectRect = mRubberBand->geometry();
int x, y, width, height;
selectRect.getRect(&x, &y, &width, &height);