在Qt中推广Widget容器时出错

时间:2016-06-24 18:31:12

标签: c++ qt user-interface

我在QT 5.4中创建了自己的类,包含头文件和源文件,然后我在那里实现了一个视频播放器。问题是,当我将它放在主窗口的中心或当我在一个单独的窗口中显示它时,它工作正常,但当我在主窗口中创建一个Widget容器并促进它的小部件,它给了我一些错误:

'vid​​eowindow'未命名类型

'widget'未在此范围内声明

'vid​​eowindow'之前的预期类型说明符

所以,这是代码:

videowindow.h - 我实现的类的标题

#ifndef VIDEOWINDOW_H
#define VIDEOWINDOW_H

#include "mainwindow.h"

class videoWindow
{
private:
    QMediaPlayer *player;
    QMediaPlaylist *playlist;
public:
    videoWindow();
    void video_enable();
    void widget();
};

#endif // VIDEOWINDOW_H

videowindow.cpp - source

#include "videowindow.h"
#include "mainwindow.h"

videoWindow::videoWindow()
{
}

void videoWindow::video_enable()
{
player = new QMediaPlayer;

playlist = new QMediaPlaylist;
playlist->addMedia(QUrl::fromLocalFile("D:\\фото\\video\\P1150277.MOV"));

QVideoWidget *videoWid = new QVideoWidget;
player->setVideoOutput(videoWid);

videoWid->show();
player->setPlaylist(playlist);
playlist->setCurrentIndex(1); // start from a first video in the playlist
player->play();
}

mainwindow.h:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtMultimedia>
#include <QtMultimediaWidgets>
#include <QtDebug>
#include <string>
#include <QGraphicsVideoItem>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "videowindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

的main.cpp

#include "mainwindow.h"
#include "videowindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

InstantPlayer.pro - 项目的.pro文件

#-------------------------------------------------
#
# Project created by QtCreator 2016-06-24T11:37:26
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = InstantPlayers
TEMPLATE = app

@
QT += multimedia
QT += multimediawidgets
@

SOURCES += main.cpp\
        mainwindow.cpp \
    videowindow.cpp \
    playerbase.cpp

HEADERS  += mainwindow.h \
    videowindow.h \
    playerbase.h

FORMS    += mainwindow.ui \
    playerbase.ui

0 个答案:

没有答案