QWidget和xvimagesink问题!

时间:2011-01-05 23:02:48

标签: qt4 gstreamer

我需要一些帮助! 在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(如果我没有设置它,我的视频流将不会显示)?

请帮忙!如果您需要更多信息,请告诉我们!请原谅我糟糕的英语!

1 个答案:

答案 0 :(得分:0)