2014-12-07 8 views
1

У меня есть следующий фрагмент кода:Создание QVideoWidget в Qt5

#include <QtWidgets/QtWidgets> 
#include <QtMultimedia/QCamera> 
#include <QtMultimedia/QMediaPlayer> 

int main(int argc, char * argv[]) 
{ 
    QApplication testQt(argc, argv); 
    QMainWindow w; 

    QWidget videoContainer(&w); 
    w.setCentralWidget(&videoContainer); 

    QVideoWidget videoWidget(&videoContainer); 

    QCamera cam(&w); 
    cam.setViewfinder(&videoWidget); 
    cam.start(); 

    w.show(); 

    return testQt.exec(); 
} 

, в котором я пытаюсь создать главное окно, создать контейнер виджет для отображения видео, создать VideoWidget в этом контейнере, и затем, наконец, установите видоискатель камеры на этот видеоусилитель. Однако, когда я пытаюсь сделать это, я получаю ошибку

переменная имеет неполный тип «QVideoWidget»

Почему я получаю эту ошибку?

ответ

5

Вам нужно включить соответствующий заголовок следующим образом:

#include <QVideoWidget> 

Вы также можете добавить это в ваш файл проекта:

QT += multimediawidgets 
+0

Сладкое! Оно работает. Любопытно: если этот заголовок должен быть включен, то почему он ранее не жаловался, что QVideoWidgets был неопределенным символом или чем-то подобным? – 1110101001

+0

@ 1110101001: не знаю, пожалуйста, предоставьте SSCCE для самоанализа. – lpapp

+1

@ 1110101001 Заголовки QMultmedia могут найти объявление для класса QVideoWidget, но определения для этого класса добавляются только при добавлении мультимедийных виджетах в конфигурацию проекта, мультимедиа-виджеты связывают проект с определением класса и библиотеками – Marware

Смежные вопросы