为了弄清楚问题是:为什么当我向我的应用程序添加 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 也包含在项目中(尚未实现)。
旧编辑:可能是视频小部件的插入极大地减慢了应用程序的速度,因此给人一种滚动条和按钮不起作用的错觉,只是因为它们需要大量时间来处理用户交互. 这可能吗?有什么解决办法吗?