我需要一些帮助!
在qt app中我有一个中央小部件。在这个中央窗口小部件中,我有一个QLabel
,另一个QWidget
。现在在gstreamer的帮助下,我可以从我的网络摄像头获取视频并通过第二个小部件显示它。现在问题是我想要截取这个小部件的屏幕截图并将其放在标签上。但我使用的方法只是一个空白的屏幕。
我试过了:
QPixmap wpix = QPixmap::grabWidget(ui->videoWidget,0,0,640,480);
ui->label->setPixmap(wpix);
和此:
QPixmap wpix=QPixmap(ui->videoWidget->size());
wpix.fill(Qt::transparent);
ui->videoWidget->render(&wpix,QPoint(0,0),QRect(0,0,640,480),QWidget::DrawWindowBackground | QWidget::DrawChildren);
唯一有效的方法是使用grabWindow,但另外还有一件事:
grabWindow()函数从屏幕上抓取像素,而不是从窗口抓取像素,即如果>是另一个窗口部分或完全超过你抓取的那个,你也可以从>覆盖窗口获得像素。
现在抓住了winWindow()因为这个效果没用,而且上面两种方法都不想工作!
有人可以告诉我是什么问题。可能是因为我将videoWidget设置为nativeWindow(如果我没有设置它,我的视频流将不会显示)?
请帮忙!如果您需要更多信息,请告诉我们!请原谅我糟糕的英语!
答案 0 :(得分:0)