2012-02-07 3 views
4

Я пытаюсь захватить снимок экрана моего приложения в приложении. Это приложение на основе Qt. Кто-нибудь знает, как это сделать? Любые предложения приветствуются.скриншот приложения qt из приложения

CV

+0

Мы должны углубиться! –

+0

@Kamil Klimek: QCeption – Exa

+0

«захватывает скриншот моей аппликации в приложении» - не мог устоять! –

ответ

3

Вы можете сказать любой QWidget (включая ваш QMainWindow), чтобы сделать себя вне экрана: http://developer.qt.nokia.com/doc/qt-4.8/qwidget.html#render

Технически это не скриншот, как это делает виджет явно для этой цели вместо того, чтобы захватить что видно на экране. Для любой цели это не имеет значения.

Если у вас есть виджет GL, вы можете/должны использовать grabFramebuffer(), который имеет преимущество захвата того, что видно на экране.

1

В этом примере вы могли бы получить весь экран виджета. Вы можете прикрепить этот метод к любому нажатию клавиши или сигналу, как вы предпочитаете, для получения последовательного снимка экрана.

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++; 
    } 
} 
Смежные вопросы