Russian Qt Forum
Ноябрь 23, 2024, 08:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Вывод текста поверх видео  (Прочитано 10098 раз)
Larry
Гость
« : Март 15, 2011, 11:42 »

Добрый день, форумчане! Появилась такая необходимость: проигрывать ролик и выводить поверх него текстовую информацию. Опыта работы с видео совершенно нет Грустный, поэтому даже не представляю куда копать...подскажите в каком направлении копать. Заранее спасибо всем откликнувшимся...
Записан
twp
Гость
« Ответ #1 : Март 15, 2011, 11:52 »

ну самое просто решение что пришло на ум, это повесить прям над видео-виджетом QLabel с прозрачным фоном
Записан
Larry
Гость
« Ответ #2 : Март 15, 2011, 11:55 »

т.е. использовать phonon и сверху вешать qlabel? А мерцание будет? Буду пробовать, а другие варианты?
Записан
twp
Гость
« Ответ #3 : Март 15, 2011, 12:05 »

за мерцание и другие траблы ничего не могу сказать, ибо это решение чисто теоретическое, и не проверено на практике.  Но общий подход думаю должен быть такой, а вот что использовать для вывода текста и как правильно скомпановать виджеты - это уже нужно поэкспериментировать. Вот кстати линк, который может помочь http://stackoverflow.com/questions/3692712/python-qt-display-text-label-above-another-widgetphonon
« Последнее редактирование: Март 15, 2011, 12:09 от twp » Записан
Larry
Гость
« Ответ #4 : Март 15, 2011, 12:25 »

спасибо буду пробовать, а потом отпишусь...
Записан
Larry
Гость
« Ответ #5 : Март 17, 2011, 16:58 »

Добрый день. Все руки не доходили до программы...Пример ссылку на который дали так и не заработал...Сделал QLabel прозрачным, но теперь не могу поместить его на видео...если просто указать ему родителя окно плеера, то отображается черный прямоугольник...Как можно еще попробовать?
Записан
twp
Гость
« Ответ #6 : Март 17, 2011, 18:03 »

и через QGraphicsTextItem не работает?
Записан
Larry
Гость
« Ответ #7 : Март 17, 2011, 21:18 »

Спасибо за ответ, попробую....еще не осваивал...
Записан
Ubuntu_linux
Гость
« Ответ #8 : Март 17, 2011, 22:05 »

Добрый день. Все руки не доходили до программы...Пример ссылку на который дали так и не заработал...Сделал QLabel прозрачным, но теперь не могу поместить его на видео...если просто указать ему родителя окно плеера, то отображается черный прямоугольник...Как можно еще попробовать?
Ти шо?
Добавляешь видео виджет на QGraphicsScene, а потом добавляешь QLabel  на сцену....

все делаешь методом
 QGraphicsProxyWidget *   addWidget ( QWidget * widget, Qt::WindowFlags wFlags = 0 )
Записан
Larry
Гость
« Ответ #9 : Март 17, 2011, 22:38 »

спасибо большое, буду пробовать Улыбающийся...классов qgraphics я еще не касался, поэтому поучу мать часть  и соберу все в кучу...
Записан
Ubuntu_linux
Гость
« Ответ #10 : Март 18, 2011, 01:17 »

спасибо большое, буду пробовать Улыбающийся...классов qgraphics я еще не касался, поэтому поучу мать часть  и соберу все в кучу...

Вот что у меня получилось.


Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #11 : Март 18, 2011, 11:13 »

Не забудь ещё кинуть тени )
Цитировать
QGraphicsItem::setGraphicsEffect( new QGraphicsDropShadowEffect( ... ) )
Записан

Qt 5.11/4.8.7 (X11/Win)
Larry
Гость
« Ответ #12 : Март 19, 2011, 23:54 »

спасибо всем кто отозвался, буду разбираться....
Записан
Larry
Гость
« Ответ #13 : Март 20, 2011, 20:16 »

Добрый вечер!Я попробовал сделать как мне посоветовали, но возникли проблемы с самим плеером...Когда я его присоединяю с помощью QGraphicsProxyWidget, то звук есть, а изображения нет...Может я делаю что-то не правильно? Подскажите пожалуйста...Вот конструктор, где все и происходит...
Код:
MainWindow::MainWindow(QMainWindow* parent): QMainWindow(parent)
{
QTextCodec *codecRus = QTextCodec::codecForName("cp1251");
QTextCodec::setCodecForTr(codecRus);

QGraphicsScene *scene = new QGraphicsScene;
QGraphicsView  *view  = new QGraphicsView(scene);

QWidget     *pWgt       = new QWidget;
QHBoxLayout *pHLtPlayer = new QHBoxLayout;

Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::VideoCategory);
player->play(QString("d:/1.avi"));
QGraphicsProxyWidget *pProxyWgt = scene->addWidget(player);

pHLtPlayer->addWidget(view);
pWgt->setLayout(pHLtPlayer);

this->setCentralWidget(pWgt);
}
Записан
Ubuntu_linux
Гость
« Ответ #14 : Март 21, 2011, 13:31 »

Вот рабочий пример!

Надо указать путь (path в коде проги) к папочке где лежит видео потом выбрать с комбо бокс нужный файл и нажать кнопку опен, потом нажать кнопку play video


Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.