Я пытаюсь захватить снимок экрана моего приложения в приложении. Это приложение на основе Qt. Кто-нибудь знает, как это сделать? Любые предложения приветствуются.скриншот приложения qt из приложения
CV
Я пытаюсь захватить снимок экрана моего приложения в приложении. Это приложение на основе Qt. Кто-нибудь знает, как это сделать? Любые предложения приветствуются.скриншот приложения qt из приложения
CV
Вы можете сказать любой QWidget
(включая ваш QMainWindow
), чтобы сделать себя вне экрана: http://developer.qt.nokia.com/doc/qt-4.8/qwidget.html#render
Технически это не скриншот, как это делает виджет явно для этой цели вместо того, чтобы захватить что видно на экране. Для любой цели это не имеет значения.
Если у вас есть виджет GL, вы можете/должны использовать grabFramebuffer(), который имеет преимущество захвата того, что видно на экране.
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++;
}
}
Мы должны углубиться! –
@Kamil Klimek: QCeption – Exa
«захватывает скриншот моей аппликации в приложении» - не мог устоять! –