Russian Qt Forum
Июня 30, 2025, 22:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Вывод текста поверх видео  (Прочитано 10499 раз)
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   Вверх
  Печать  
 
Перейти в:  


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