firemail
标题:
Qt 在Linux下播放flash (swf文件)
[打印本页]
作者:
Qter
时间:
2018-4-16 14:01
标题:
Qt 在Linux下播放flash (swf文件)
windows下有activex控件
linux下好像没有,用QWebveiw显示
QWebView与flash交互
QWebSettings *websetting = QWebSettings::globalSettings();
websetting->setAttribute(QWebSettings::PluginsEnabled, true);
websetting->setAttribute(QWebSettings::JavaEnabled, true);
QString str("file:///home/homisunit/flash/AvrDefault.swf");
QUrl url(str);
ui->webView->load(url);
ui->webView->show();
复制代码
用Qt5.5.1,同时有QtWebkit和QtWebEngine,官方预编译包还能支持XP系统
Qt5.6后没有QtWebkit了,官方预编译包也不支持XP系统,需要支持XP,自己编译。
作者:
Qter
时间:
2018-5-15 15:01
本帖最后由 Qter 于 2018-5-15 16:45 编辑
minGW编译器不支持webenginewidgets模块
Qt webkitwidgets模块和webenginewidgets模块
问题
将Qt开发的程序从Qt5.5或更低的版本迁移到5.6或更高的版本时,会提示webkitwidgets是unknown module。
Project ERROR: Unknown module(s) in QT: webkitwidgets
原因
根据Qt官方的解释(在Qt的帮助文档里也可以看到),在5.6版本以及之后的版本,Qt已经移除了webkitwidgets模块,并用一个新的模块webenginewidgets替代之。
Qt5.5.1是最后一个支持webkitwidgets的版本。
解决
Qt给出了向高版本迁移的文档:Porting from Qt WebKit to Qt WebEngine
在.pro文件中,如果要区分不同的Qt版本,可以这么写:
lessThan(QT_VERSION, 0x050600)
{
QT += webkitwidgets
# do something else
}
greaterThan(QT_VERSION, 0x050500)
{
QT += webenginewidgets
# do something else
}
greaterThan(QT_MAJOR_VERSION, 4)|equals(QT_MAJOR_VERSION,4){
greaterThan(QT_MINOR_VERSION, 5)|equals(QT_MINOR_VERSION, 5){
message("bla,bla,bla ....")
}
}else{
message("pla,pla,pla ....")
}
作者:
Qter
时间:
2018-5-15 15:04
本帖最后由 Qter 于 2018-5-15 15:17 编辑
QWebEngineView 播放flash 基于Qt5.8.0
修改QTWebEngineDemo.pro添加框架依赖
QT += core gui webenginewidgets
#include <QtWebEngineWidgets>
QWebEngineSettings *defaultSettings = QWebEngineSettings::globalSettings();
// defaultSettings->setAttribute(QWebEngineSettings::JavascriptEnabled, true);
// defaultSettings->setAttribute(QWebEngineSettings::ScrollAnimatorEnabled, true);
defaultSettings->setAttribute(QWebEngineSettings::
PluginsEnabled
, true);
// defaultSettings->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true);
QWebEngineView * view = new QWebEngineView();
view->setUrl(QUrl("http://www.firemail.wang:8088/chunhui_resource/preschool/letters/a.swf"));
view->show();
作者:
Qter
时间:
2018-5-15 17:19
MAJOR
MAJOR表示当前APR的主版本号,它的变化通常意味着APR的巨大的变化,比如体系结构的重新设计,API的重新设计等等,而且这种变化通常会导致APR版本的向前不兼容。
2、MINOR
MINOR称之为APR的次版本号,它通常只反映了一些较大的更改,比如APR的API的增加等等,但是这些更改并不影响与旧版本源代码和二进制代码之间的兼容性。
3、PATCH
PATCH通常称之为补丁版本,通常情况下如果只是对APR函数的修改而不影响API接口的话都会导致PATCH的变化。目前为止APR的最高版本是1.2.2,最早遵循这种规则的版本号是0.9.0,不过在0.9.0之前,APR还推出了两个版本a8和a9。
作者:
Qter
时间:
2018-5-15 17:44
.pro
equals(QT_MAJOR_VERSION, 5)
lessThan(QT_MINOR_VERSION, 7): QT += webkitwidgets
equals(QT_MAJOR_VERSION, 5)
greaterThan(QT_MINOR_VERSION, 7): QT += webenginewidgets
复制代码
.h
#if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0))
#include <QtWebEngineWidgets>
#else
#include <QWebView>
#include <QWebSettings>
#endif
#if QT_VERSION >= 0x050700
QWebEngineView * engineView;
#else
QWebView* webView;
QWebSettings *websetting;
#endif
复制代码
.cpp
#if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0))
#include <QWebEngineSettings>
#endif
#if QT_VERSION >= 0x050700
QWebEngineSettings *defaultSettings = QWebEngineSettings::globalSettings();
defaultSettings->setAttribute(QWebEngineSettings::PluginsEnabled, true);
engineView= new QWebEngineView(ui->page);
mainLayout->addWidget(engineView);
engineView->setUrl(QUrl("http://www.firemail.wang:8088/chunhui_resource/preschool/letters/a.swf"));//
engineView->show();
#else
websetting = QWebSettings::globalSettings();
websetting->setAttribute(QWebSettings::PluginsEnabled, true);
// websetting->setAttribute(QWebSettings::JavaEnabled, true);
websetting->setAttribute(QWebSettings::JavascriptEnabled, true);
websetting->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);//
websetting->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
webView= new QWebView(ui->page);
mainLayout->addWidget(webView);
webView->load(QUrl("http://www.baidu.com"));//
webView->show();
#endif
复制代码
欢迎光临 firemail (http://firemail.wang:8088/)
Powered by Discuz! X3