【问题标题】:Screenshot in a small part of Qt-WindowQt-Window 小部分截图
【发布时间】:2013-10-27 13:51:41
【问题描述】:

我希望能够截取我的程序的屏幕截图并将它们保存为 png(或者如果可以保存为 pdf)。我已经从 Qt 中获取了屏幕截图示例。这会从整个显示中截取屏幕截图。但我想只从我的窗口的一部分截取屏幕截图,即使它位于显示器的另一个位置。我怎样才能做到这一点。有功能吗?

【问题讨论】:

    标签: qt screenshot


    【解决方案1】:

    QPixmapstatic 函数 grabWidget 是你的朋友。您可以轻松获取所提供小部件的像素图,然后将其保存为您想要的任何格式:

    QPixmap p = QPixmap::grabWidget(widget);
    p.save("p.png");
    

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        检查窗口以获取它的位置和大小。如果您想在屏幕截图中看到任何特定元素,您可以获取它的位置和大小。否则,您将不得不使用窗口位置的偏移量,这可能会导致问题(例如,在调整窗口大小时)。

        获取屏幕截图,然后使用之前的位置/大小制作像素图。

        有一个缺点:拍摄整个桌面的快照有点慢。

        因此,更好的解决方案可能是更改您的应用程序:在屏幕外缓冲区中渲染您想要保存的部分。然后,您可以使用此缓冲区来呈现 UI 并同时保存屏幕截图。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多