Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QT и Flash
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Script. Интеграция WebKit
wander86
Привет. Подскажите, каким образом можно вставить flash ролик в QT проект? Нада, что бы просто баннерок висел, при нажатии на него осуществлялся переход в браузере. Конечно, если возможно, то что бы событие клика перехватывалось, но это не обязательно.
Компилю под винду.
fsMark
Смотри в сторону QWebView, он может отобразить html страничку с Flash роликом.
wander86
Цитата(fsMark @ 12.10.2009, 15:44) *
Смотри в сторону QWebView, он может отобразить html страничку с Flash роликом.


Странно, пробовал через WebView открывать страницы с флэшем, просто пустота вместо мувиков.
SABROG
У меня такое, если я запускаю демку browser, то флэшки проигрываются, а если просто кидаю на форму QWebView, то нет.
wander86
Цитата(SABROG @ 12.10.2009, 16:00) *
У меня такое, если я запускаю демку browser, то флэшки проигрываются, а если просто кидаю на форму QWebView, то нет.


А как вы закидываете, просто как setHtml а там путь к флэше, или нет?
SABROG
Цитата(wander86 @ 12.10.2009, 16:02) *
Цитата(SABROG @ 12.10.2009, 16:00) *
У меня такое, если я запускаю демку browser, то флэшки проигрываются, а если просто кидаю на форму QWebView, то нет.


А как вы закидываете, просто как setHtml а там путь к флэше, или нет?


Через demo/browser так (с локальных ресурсов он не открывает):

http://www.server.ru/53.swf

А в QWebView дизайнера установка этого url в свойствах виджета ни к чему не приводит, остается белая страница.
wander86
А через QAxWidget никто не пробовал? Вроде говорят, что через него можно, но как это сделать не найду (-:
fsMark
Цитата(SABROG @ 12.10.2009, 16:16) *
Через demo/browser так (с локальных ресурсов он не открывает):

http://www.server.ru/53.swf

А в QWebView дизайнера установка этого url в свойствах виджета ни к чему не приводит, остается белая страница.


Насколько я понимаю надо чтобы для страницы было установленно:
page()->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);
page()->settings()->setAttribute(QWebSettings::PluginsEnabled,true);
wander86
Цитата(fsMark @ 12.10.2009, 16:39) *
Насколько я понимаю надо чтобы для страницы было установленно:
page()->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);
page()->settings()->setAttribute(QWebSettings::PluginsEnabled,true);

Как же прекрасно жить (-: Спасибо, заработало!
Alex
Цитата(fsMark @ 12.10.2009, 15:39) *
Насколько я понимаю надо чтобы для страницы было установленно:
page()->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);
page()->settings()->setAttribute(QWebSettings::PluginsEnabled,true);

Другой вариант для Windows использовать Qtitan Multimedia (Adobe Flash и Silverlight для Qt) http://www.devmachines.com/qtitanmm_descr.php
fsMark
Цитата
Qtitan Multimedia Library single license (with source code) for Windows You can modify our source code and royalty-free redistribute the modified libraries. As you can imagine, this does not apply to situations in which you are modifying our code and repackaging our components and selling competing components. $199


Qtitan Multimedia Library single license (without source code) for Windows You can royalty-free redistribute the libraries as part of your applcation or link libraries staticaly. The sources code are not included. $119


200$ за не переносимые сырцы.. уж лучше QWebView)
mike
Цитата(fsMark @ 12.10.2009, 14:44) *
Смотри в сторону QWebView, он может отобразить html страничку с Flash роликом.


действительно, может
правда, непосредственно swf'ки грузит только с http, а с файловой системы исключительно обёрнутые в html
печально :cray:
но есть ещё одна сложность: обмен данными между flash и Qt
в браузерах это делается через интерфейсы fscommand и externalCalls в JavaScript
а как можно что-то передать из flash'а в Qt?
или QWebView на это в принципе не способен, и нужно копать в сторону Gnash? кто-нибудь пробовал его ставить на Qt?
fsMark
Цитата(mike @ 10.2.2010, 13:20) *
а как можно что-то передать из flash'а в Qt?
или QWebView на это в принципе не способен....


Цитата
WebKit supports the Netscape Plugin API


Может оно:
http://trac.webkit.org/wiki/QtWebKitPlugins
mike
не, там вообще чёрт ногу сломит
правильный ответ (может, пригодится кому):
ui->webView->page()->currentFrame()->addToJavaScriptWindowObject("myObject", new MyObject()); - это из JS в Qt
ui->webView->page()->currentFrame()->evaluateJavaScript("f2('fromQttoJS')"); - это из Qt в JS
а уже из JS во Flash - описанными выше способами
Dimix
Перечитал тему 2 раза. Так ничего и не понял. Вопрос похожий необходимо повесить баннерок чтобы при клике на него открывался браузер. Я думал все просто сделал так:
QLabel* labelBanner = new QLabel(tr("<a href=\"http://ya.ru/\">Яндекс</a>"));
labelBanner->show();

Оно показывает что ссылка задана но не переходит. А делаю вот так:
QMessageBox::about(0, tr("Баннер"), tr("<a href=\"http://ya.ru/\">Яндекс</a>"));

Оно открывает браузер и отображает заданный url адрес.
Думал прицепить все окно QMessageBox на форму проблема со стандартными кнопками (не смог их убрать).
Использовал QWebView но он открывает все в себе.
Как сохранить картинку из QWebView на жесткий диск?
Как решить мою проблему?
Kagami
Цитата(Dimix @ 15.12.2010, 15:20) *
Перечитал тему 2 раза. Так ничего и не понял. Вопрос похожий необходимо повесить баннерок чтобы при клике на него открывался браузер. Я думал все просто сделал так:
QLabel* labelBanner = new QLabel(tr("<a href=\"http://ya.ru/\">Яндекс</a>"));
labelBanner->show();

Оно показывает что ссылка задана но не переходит. Как решить мою проблему?

http://www.doc.crossplatform.ru/qt/4.7.x/q...ernalLinks-prop
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2022 IPS, Inc.