2016-06-23 2 views
0

Чтобы уточнить вопрос: Почему, когда я добавляю 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: это может быть, что вставная часть видео-виджет крайне замедляет приложения, поэтому дает иллюзию того, что полоса прокрутки и кнопки не работают, просто потому, что это занимает много времени их для обработки взаимодействия с пользователем. Это возможно? Любое решение для этого?

+0

Невозможно воспроизвести. Укажите небольшой пример приложения, который программно создает виджет и макеты и устанавливает его для воспроизведения проблемы. См. этот пример] (http://stackoverflow.com/a/37815322/1329652) для вдохновения. Ваш код должен вписываться в тело функции 'main', без необходимости в пользовательских классах, и вы можете использовать все это в одном файле' main.cpp'. –

+0

спасибо @KubaOber, но мой код действительно не вписывается в основную функцию.Я также не могу опубликовать его :) Мой вопрос, однако, касается факта просто добавления QVideoWidget, который отключает все кнопки, функциональность прокрутки (код выше, без этого кода, все в моем приложении отлично работает). Другая возможность, как объясняется, может заключаться в том, что видеовидео каким-то образом замедляет работу приложения. Поэтому мой вопрос: у кого-то была такая же проблема? Как он его разрешил? Спасибо за ваш отзыв, хотя, есть ли у вас какие-либо другие советы о том, как улучшить свой вопрос для читателей? –

ответ

0

Получено решение: Если ваши QVideoWidgets или QMediaPlayers сильно замедляют работу вашего приложения, все, что вам нужно сделать, если вы еще этого не сделали, - переместить все (или только нечитаемые) Qt dll в вашу папку проекта.

Это очень простой, я знаю, но это была моя проблема. Теперь он работает как рай.

Смежные вопросы