我希望能够获取我的程序的屏幕截图并将它们保存为png(或者如果它可以作为pdf)。我从Qt那里截取了截图示例。这将从整个显示屏截取屏幕截图。但我想从我的窗口的一部分截取屏幕截图,即使它位于显示器的另一个位置。我怎样才能做到这一点。有功能吗?
答案 0 :(得分:4)
static
的{{1}}函数grabWidget
是您的朋友。您可以轻松拍摄所提供小部件的像素图,然后以您希望的任何格式保存它:
QPixmap
答案 1 :(得分:0)
QWidget::render
(http://doc.qt.nokia.com/4.7-snapshot/qwidget.html#render)怎么样?
答案 2 :(得分:0)
检查窗口以获取其位置和大小。如果您想在屏幕截图中看到任何特定元素,则可以获得它的位置和大小。否则,您将不得不使用窗口位置的偏移量,这可能会导致问题(例如,调整窗口大小时)。
获取屏幕截图,然后使用之前的位置/大小来压缩像素图。
有一个缺点:拍摄整个桌面的快照有点慢。
因此,更好的解决方案可能是更改应用程序:将要保存的部分渲染到屏幕外缓冲区中。然后,您可以使用此缓冲区呈现UI并同时保存屏幕截图。