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

  • 当捕获按钮单击时,将弹出一个覆盖透明小部件(全屏但没有框架)
  • 我正在使用 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);
    

    关于c++ - 从 Qt 上的选定区域(QRubberBand)截取屏幕截图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24666152/

    10-11 19:38