1
我需要一些帮助! 在qt应用程序中,我有一个中央控件。在这个中心部件中,我有一个QLabel
,另一个QWidget
。现在在gstreamer的帮助下,我可以从我的摄像头获取视频并通过第二个小部件显示它。现在的问题是我想把这个小部件的截图放在标签上。但我使用的方法只给了一个空白的屏幕。QWidget和xvimagesink问题!
我尝试这样做:
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()函数从屏幕抓取像素,而不是从窗口获取像素,即,如果有另一个窗口部分或全部位于您抓取的那个窗口之上,则会从中获取像素>覆盖窗口。
现在grabWindow()没有用,因为这个效果,并且上面的两个方法不想工作!
有人可以告诉我什么是问题。可能是事实,我设置videoWidget是一个nativeWindow(如果我没有设置它,我的视频流不会显示)?
请帮忙!如果您需要更多信息,请告诉我!请原谅我的英文不好!
不需要在每一行放上'
'。只需选择所有代码,然后点击代码按钮即可。 (文本块的四个空格缩进被解释为代码块) – Nifle 2011-01-07 11:18:03
只发布大代码块不是(通常)非常有用。代码之前的一个小解释通常是正常的(和礼貌的)事情。 – Nifle 2011-01-07 11:19:38
好吧,我的坏。我已经发布了所有的代码,因为我认为这将有助于更多?我已经在qt论坛上发布这个问题,但迄今为止没有! – BlueEyes89 2011-01-07 13:46:08