0

为了弄清楚问题是:为什么当我向我的应用程序添加 QVideoWidget 时,所有按钮都变得不可点击,滚动条不起作用,组合框也变得不可点击?QVideoWidget 是否禁用了这些功能?或者这可能是(就像我在这个 SO 问题中读到的那样)QVideoWidget 只是通过添加到应用程序中而极大地减慢了我的应用程序?

现在详细说明: 我真的希望有人可以帮助我。我正在尝试使用以下代码将 QvideoWidget 放入我的桌面应用程序中(没什么特别的,就像在教程中一样):

// ...
// more code above for other things...
// main video-player widget
video_widget = new QVideoWidget;
video_widget->setMaximumHeight(100);    // I could set any size here...this is not the point
video_widget->setMinimumHeight(100);
video_widget->setStyleSheet(STYLE_WIDGET_BG); // same background as the other widgets...
video_widget->setMaximumWidth(100);
video_widget->setMinimumWidth(100);
media_player = new QMediaPlayer(0, QMediaPlayer::VideoSurface);
TV_V_LAYOUT_MAIN_2->addWidget(video_widget);    // #define TV_V_LAYOUT_MAIN_2 ui.lvl_4_tv2_h_1 --> this a layout inside another layout...
media_player->setVideoOutput(video_widget);
return; // this function is called inside the MainWindow constructor

所以有以下几种情况:

1)不添加视频小部件,一切正常......

2)只要我用上面的代码添加 QVideoWidget: 应用程序概述

怎么了? 视频播放器不会以任何方式显示。至少应该像其他小部件一样有灰色背景,但什么也没有。然而按钮位置降低了,所以我猜播放器被插入了......问题是:所有按钮(我的意思是我的应用程序中的所有按钮)都被禁用。组合框和滚动条也是如此。禁用我的意思是,当您单击它们时,它通常不会像单击按钮时那样“动画化”,并且滚动条不会滚动...

顺便说一句,QVideoWidget 没有与下面的按钮放置在相同的布局中。您可以在此处查看布局层次结构:Layouts with Qt Designer

我想我错过了一些非常简单的东西。有人为我找到解决方案吗?

信息:我正在使用带有 Qt 插件的 Visual Studio 2013 进行编程;我只使用标准库;gstreamer 也包含在项目中(尚未实现)。

旧编辑:可能是视频小部件的插入极大地减慢了应用程序的速度,因此给人一种滚动条和按钮不起作用的错觉,只是因为它们需要大量时间来处理用户交互. 这可能吗?有什么解决办法吗?

4

1 回答 1

0

得到解决方案:如果您的 QVideoWidgets 或 QMediaPlayers 极大地减慢了您的应用程序,那么您所要做的就是将所有(或只是需要的)Qt dll 移动到您的项目文件夹中。

这是非常基本的,我知道,但那是我的问题。现在它像天堂一样运作。

于 2016-07-21T14:46:59.877 回答