Чтобы уточнить вопрос: Почему, когда я добавляю QVideoWidget в свое приложение, все кнопки становятся недоступными, полосы прокрутки не работают, а также со списками не становятся доступными для кликов? Является ли QVideoWidget отключением этих функций? Или это возможно (например, я читал in this SO question) QVideoWidget чрезвычайно замедляет мое приложение, просто добавив его в приложение?Qt: 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) Без добавления VideoWidget , все работает отлично ...
2) Как только я добавляю QVideoWidget с указанным кодом: app overview
Что происходит? Видеопроигрыватель никак не отображается. Должен быть хотя бы серый фон, как и другие виджеты, но ничего. Однако положение кнопок опускается, поэтому я думаю, что плеер вставлен ... Проблема в том, что все кнопки (и я имею в виду ВСЕ кнопки в моем приложении) отключены. Так же есть выпадающие списки и полоса прокрутки. По отключенному я имею в виду, что когда вы нажимаете на них, он обычно не «оживляется», как при нажатии на кнопку, а прокрутка не прокручивается ...
Кстати, QVideoWidget не является местом в одном и том же как кнопки ниже. Вы можете увидеть иерархию расположения здесь: Layouts with Qt Designer
Я думаю, что мне не хватает чего-то очень простого. Кто-нибудь получил решение для меня?
INFO: Я программирую Visual Studio 2013 с помощью Qt Add-In; Я использую только стандартные библиотеки; gstreamer также включен в проект (пока ничего не реализовано).
OLD EDIT: это может быть, что вставная часть видео-виджет крайне замедляет приложения, поэтому дает иллюзию того, что полоса прокрутки и кнопки не работают, просто потому, что это занимает много времени их для обработки взаимодействия с пользователем. Это возможно? Любое решение для этого?
Невозможно воспроизвести. Укажите небольшой пример приложения, который программно создает виджет и макеты и устанавливает его для воспроизведения проблемы. См. этот пример] (http://stackoverflow.com/a/37815322/1329652) для вдохновения. Ваш код должен вписываться в тело функции 'main', без необходимости в пользовательских классах, и вы можете использовать все это в одном файле' main.cpp'. –
спасибо @KubaOber, но мой код действительно не вписывается в основную функцию.Я также не могу опубликовать его :) Мой вопрос, однако, касается факта просто добавления QVideoWidget, который отключает все кнопки, функциональность прокрутки (код выше, без этого кода, все в моем приложении отлично работает). Другая возможность, как объясняется, может заключаться в том, что видеовидео каким-то образом замедляет работу приложения. Поэтому мой вопрос: у кого-то была такая же проблема? Как он его разрешил? Спасибо за ваш отзыв, хотя, есть ли у вас какие-либо другие советы о том, как улучшить свой вопрос для читателей? –