首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt QQuickWidget与QGraphicsVideoItem冲突

Qt QQuickWidget与QGraphicsVideoItem冲突
EN

Stack Overflow用户
提问于 2020-03-03 00:21:34
回答 1查看 46关注 0票数 0

我一直使用QGraphicsScene和QGraphicsVideoItem作为我的画布。为了控制它们,我选择使用qml和QQuickWidget来轻松地为不同的模块开发自定义对象。然而,我很快就遇到了一个问题,QGraphicsVideoItem不会在QGraphicsScene中呈现,而是在QQuickWidget中呈现(当小部件为空或附加了QML源时)。而且这个问题似乎也可以通过在主ui中的任何地方放置一个空的QQuickWidget(通过qt设计器)来使用新项目来重现。

下面是可重现的代码:

代码语言:javascript
复制
#include "QtGuiApplication1.h"

QtGuiApplication1::QtGuiApplication1(QWidget *parent): QMainWindow(parent)
{
    ui.setupUi(this);

    QGraphicsView* view = new QGraphicsView(ui.widget);
    QGraphicsScene* scene = new QGraphicsScene();
    QGraphicsVideoItem* video = new QGraphicsVideoItem();
    QMediaPlayer* player = new QMediaPlayer();
    QUrl path = QUrl::fromLocalFile("D:/My Documents/Videos/XIII.mp4");
    QVBoxLayout* layout = new QVBoxLayout();

    layout->addWidget(view);
    ui.widget->setLayout(layout);
    video->setFlags(QGraphicsVideoItem::ItemIsMovable | QGraphicsVideoItem::ItemIsFocusable | QGraphicsVideoItem::ItemIsSelectable);
    video->setPos(100, 100);

    //view->setSceneRect(QRectF(QPointF(100, 100), QPointF(800, 600)));
    view->setScene(scene);

    player->setMedia(path);
    player->setVideoOutput(video);
    scene->addItem(video);

    player->play();

    view->show();

}
代码语言:javascript
复制
#pragma once

#include "ui_QtGuiApplication1.h"
#include <QtCore>
#include <QDebug>
#include <QGraphicsVideoItem>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QMediaPlayer>
#include <QUrl>
#include <QString>

class QtGuiApplication1 : public QMainWindow
{
    Q_OBJECT

public:
    QtGuiApplication1(QWidget *parent = Q_NULLPTR);

private:
    Ui::QtGuiApplication1Class ui;

};

当我从ui文件中删除小部件时,这个问题立即消失了。那么我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-03-04 11:10:56

当您调用ui.widget->setLayout(layout);时,您破坏了在Qt设计器中设置的布局。

无需在*.cpp文件中以编程方式创建QGraphicsViewQVBoxLayout,而是在Qt设计器中将它们全部添加。

(如果问题仍然存在,请编辑您的原始帖子并包含您的*.ui文件)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60492859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档