Мне нужна помощь!
В приложении QT у меня есть центральный виджет. В этом центральном виджете у меня есть 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 () захватывает пиксели с экрана, а не из окна, т.е. если> есть другое окно, частично или полностью поверх того, которое вы захватываете, вы также получаете пиксели из> вышележащего окна.
Теперь grabWindow () из-за этого эффекта бесполезен, а два вышеуказанных метода не хотят работать!
Может кто-нибудь сказать мне, в чем проблема. Может ли это быть из-за того, что я установил videoWidget на nativeWindow (если я его не установлю, мой видеопоток не будет показан)?
Пожалуйста, помогите! Если вам нужно больше информации, дайте мне знать! И прошу прощения за мой плохой английский!