【问题标题】:Taking a screenshot from the selected area(QRubberBand) on Qt从 Qt 上的选定区域(QRubberBand)截取屏幕截图
【发布时间】:2014-08-31 05:09:43
【问题描述】:

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

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

现在我必须对我选择的部分进行截图。

我想我必须将我从选择 QRubberBand 中得到的维度传递给这个:

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

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

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。但是现在当我尝试保存屏幕截图时,它只占用了屏幕的一部分,甚至没有我使用 QRubberBand 选择的部分。
    猜你喜欢
    • 2015-03-23
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 2016-04-06
    • 1970-01-01
    相关资源
    最近更新 更多