从应用程序内的qt应用程序的屏幕截图
答
你可以告诉任何QWidget
(包括您QMainWindow
)来表现自己关屏: http://developer.qt.nokia.com/doc/qt-4.8/qwidget.html#render
从技术上讲,这不是一个截图,因为它使小部件明确地用于此目的,而不是捕捉在屏幕上看到什么。几乎任何目的都没关系。
如果您有GL小部件,则可以/必须改为使用grabFramebuffer(),它具有捕获屏幕上显示内容的优点。
答
如果您有ID,QPixmap可让您进行窗口抓取。我引用了PyQt的,但我敢肯定,你可以进行调整:
How to get RGB values of QPixmap or QImage pixel - Qt, PyQt
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qpixmap.html#grabWindow
答
有了这个例子中,你可以得到你所有的构件屏幕。 您可以将此方法附加到任何按键或信号上,以获得连续的屏幕截图。
MyClass::screenshot()
{
QWidget *w = QApplication::activeWindow();
if(w) {
static int count = 0;
QPixmap p = QPixmap::grabWidget(w);
p.save(QString("/your/path/screenshot%1.png").arg(count));
count++;
}
}
我们必须更深入! – 2012-02-07 08:37:55
@Kamil Klimek:QCeption – Exa 2012-02-07 08:53:16
“在应用程序中捕获我的应用程序的屏幕截图” - 无法抗拒! – 2012-02-07 08:55:38