QWidget::grab 视频功能:无法捕捉
QWidget::grab function for videos: cannot catch
我想将当前 window 保存到 Qt 中的图像(如 ATL+PrintScreen)。例如,对于Qt Media Player Example(搜索"player"可以得到Qt Creator示例中的所有代码,我将这段代码添加到player.h
:
//private slots:
...
void exportVideoToImages();
并在 player.cpp
中:
void Player::exportVideoToImages()
{
qDebug() << "ok";
QPixmap const& px = grab();
px.save("File.png");
}
将此行添加到构造函数以触发插槽:
new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_G), this, SLOT(exportVideoToImages()));
因此,当我触发 CTRL+G 时,我将收到一张图片 "File.png"。成功了,问题是播放的视频卡不上。
这是两张图片,一张来自Alt+PrintScreen,一张来自程序:
这是为什么?如何在 Qt 中抓取视频?你能告诉我吗?
非常感谢!
我找到了解决方案:
QScreen *screen = QGuiApplication::primaryScreen();
if (screen) {
QPixmap px =screen->grabWindow(this->winId());
px.save("screen.png");
}
我想将当前 window 保存到 Qt 中的图像(如 ATL+PrintScreen)。例如,对于Qt Media Player Example(搜索"player"可以得到Qt Creator示例中的所有代码,我将这段代码添加到player.h
:
//private slots:
...
void exportVideoToImages();
并在 player.cpp
中:
void Player::exportVideoToImages()
{
qDebug() << "ok";
QPixmap const& px = grab();
px.save("File.png");
}
将此行添加到构造函数以触发插槽:
new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_G), this, SLOT(exportVideoToImages()));
因此,当我触发 CTRL+G 时,我将收到一张图片 "File.png"。成功了,问题是播放的视频卡不上。
这是两张图片,一张来自Alt+PrintScreen,一张来自程序:
这是为什么?如何在 Qt 中抓取视频?你能告诉我吗?
非常感谢!
我找到了解决方案:
QScreen *screen = QGuiApplication::primaryScreen();
if (screen) {
QPixmap px =screen->grabWindow(this->winId());
px.save("screen.png");
}