用Qt开发Web和本地混合的应用
来源:互联网 发布:url隐藏端口号 编辑:程序博客网 时间:2024/05/23 13:03
QtWebkit模块使得Qt widget能够通过HTML的object标签嵌入到web页面中,并通过JavaScript代码进行访问,而Qt对象也能相应的访问web页面元素。
将Qt对象插入到web页面中
首先继承并实现QWebPluginFactory类(C++):
class MyPlugin: public QWebPluginFactory
{
public:
};
MyPlugin::MyPlugin(QObject* parent)
{
}
QObject* MyPlugin::create(const QString& mimeType,
{
}
QList MyPlugin::plugins() const
{
}
然后将其嵌入到HTML页面中:
<html>
<head><title>test</title></head>
<body>
<object type="application/zxz-plugin" data="http://blog.csdn.net/zhu_xz" width="200" height="100"
</body>
</html>
最后,在Qt代码中加载并显示该页面
QWebView view;
view.settings()->setAttribute(QWebSettings::PluginsEnabled, true);
view.page()->setPluginFactory(new MyPlugin);
view.load(QUrl("test.html"));
view.show();
这里,当QtWebkit模块解析该HTML文件,遇到object标签时,会自动调用QWebPluginFactory::create()函数,并传递以下参数:
mimeType:application/zxz-plugin
url:http://blog.csdn.net/zhu_xz
此外,还可以通过object标签的param子标签传递参数。
在web页面中访问Qt对象
在web页面中可以通过类似于下的JavaScript代码访问Qt对象:
- HTML code
<a href="javascript:document.getElementByIdx_x("myLabel").setText("通过JavaScript访问Qt对象");" mce_href="javascript:document.getElementByIdx_x("myLabel").setText("通过JavaScript访问Qt对象");">点击访问Qt对象</a>
在Qt对象中访问web页面元素
在QWebPluginFactory::create()函数中添加以下代码:
- C/C++ code
// myPlugin指向的对象可在HTML中用名字myPluginObject进行访问
webView->page()->mainFrame()->addToJavaScriptWindowObj
// 当信号signalEmitted被触发时,调用JavaScript的functionToCall函数
webView->page()->mainFrame()->evaluateJavaScript("myPluginObject.signalEmitted.connect(functionToCall);");
- 用Qt开发Web和本地混合的应用
- 用Qt开发Web和本地混合的应用
- 用Qt开发Web和本地混合的应用
- 用Qt开发Web和本地混合的应用
- 用Qt开发Web和本地混合的应用
- 用Qt开发Web和本地混合的应用
- 用Qt开发Web和本地混合的应用
- 【Qt】Web与本地应用的混合开发
- QT Web与本地应用的混合开发
- 【Qt】Web与本地应用的混合开发
- QT Web与本地应用的混合开发
- 利用QT进行web与本地混合应用开发
- 利用QT进行web与本地混合应用开发
- 利用QT进行web与本地混合应用开发
- Qt移动应用开发(八):实现跨平台的QML和OpenGL混合渲染
- Qt移动应用开发:实现跨平台的QML和OpenGL混合渲染
- Qt WebKit可以做什么(三)——开发包含丰富web内容的本地应用
- Qt WebKit可以做什么(三)——开发包含丰富web内容的本地应用
- Android捕获全局异常信息并实现上传
- android开发之widget的研究(OPWidget关于海贼王的小插件)(上)
- 各种系统架构图及其简介(Spring+IBatis+Struts1+Struts2+Hibernate+Java EE+Oracle)
- Android杂谈---各种Toast
- 数据库系统开发
- 用Qt开发Web和本地混合的应用
- 用汇编的眼光看C++(之指针2)
- 张逸:老鸟对菜鸟的一些建议
- Hibernate性能优化要点
- 大道至简,职场上做人做事做管理
- 如何判断两条线段相交
- Rhel: pygame安装与范例运行,以及中间出错问题的处理(redhat)
- Linux 内核配置和文件系统的构建
- 一个用于查看当前命令行值的程序