pyqt、webkit和qt之间的关系
前言
最近在维护一个PYQT的项目,有很多不明白的地方,总结一下,共其他直接使用pyqt的人参考一下。PyQT是一个生成图形应用程序的工具包。是python语言和成功的Qt库的绑定。Qt库是这个世界上最强大的库之一。官方的PyQt网站在www.riverbankcomputing.co.uk。
一、QT
1.1 什么是QT?
Qt是一个著名的C++库——或许并不能说这只是一个GUI库,因为Qt十分庞大,并不仅仅是GUI。使用Qt,在一定程序上你获得的是一个“一站式”的服务:不再需要研究STL,不再需要C++的<string>,因为Qt有它自己的QString等等。或许这样说很偏激,但Qt确实是一个“伟大的C++库”。
1.2 QT、WXWIDGET、GTK++的关系
我们所使用的Qt,确切地说也就是它的GUI编程部分。C++的GUI编程同Java不同:GUI并不是C++标准的一部分。所以,如果使用Java,那么你最好的选择就是AWT/Swing,或者也可以使SWT/JFace,但是,C++的GUI编程给了你更多的选择:wxWidget, gtk++以及Qt。
1.2.1 wxWidget
这是一个标准的C++库,和Qt一样庞大。它的语法看上去和MFC类似,有大量的宏。据说,一个MFC程序员可以很容易的转换到wxWidget上面来。wxWidget有一个很大的优点,就是它的界面都是原生风格的。这是其他的库所不能做到的。wxWidget的运行效率很高,据说在Windows平台上比起微软自家的MFC也不相上下。
1.2.2 gtk++
gtk++其实是一个C库,不过由于C++和C之间的关系,这点并没有很大的关系。但是,gtk++是一个使用C语言很优雅的实现了面向对象程序设计的范例。不过,这也同样带来了一个问题——它的里面带有大量的类型转换的宏来模拟多态,并且它的函数名“又臭又长(不过这点我倒是觉得无所谓,因为它的函数名虽然很长,但是同样很清晰)”,使用下划线分割单词,看上去和Linux如出一辙。由于它是C语言实现,因此它的运行效率当然不在话下。gtk++并不是模拟的原生界面,而有它自己的风格,所以有时候就会和操作系统的界面显得格格不入。
二、WEBKIT
WebKit 是以 LGPL (和部分 BSD) 方式授权的,此类授权适合将 WebKit 集成到商业框架中。WebKit 开发是采用开源形式的,对诺基亚和 Qt Development Frameworks 项目的未来发展方向有很大影响,也促使我们为 webkit 开发所需的功能不断努力。
WebKit 项目是 KDE's KHTML 浏览器引擎的一个分支。诺基亚和 Qt DevelopmentFrameworks 雇用了大量从事过 KHTML 工作的关键开发人员, 其中包括 Qt Development Frameworks 的研发主管 Lars Knoll,他从 1998 年至 2003 年期间一直主管 KHTML 项目并对其进行维护。因此,我们对其源代码有非常深入的了解。许多主要公司已采用 WebKit 作为其浏览器解决方案的首选基础。WebKit 是Apple 的 Safari 浏览器、Google Chrome 和上百万手机用户使用的S60 浏览器的引
擎。
三、QT和WEBKIT
Qt 应用程序框架和 WebKit 浏览器引擎的集成为开发团队提供了两者的精华所在。因此,设计人员可使用熟悉的网络流程,而编码人员则可专心编写应用程序功能。这样的集成通过在本地应用程序中渲染网络内容,提供了本地和网络混合的用户体验。这样,本地应用程序就可通过编程与网络服务进行互动,例如自动认证过程。开发人员还可通过网络服务扩展本地应用程序的功能,以及使用一些本地环境中特有的功能来扩展网络服务。更多内容可以参考:http://www.cnblogs.com/liqiu/p/3361207.html
四、PYQT
那么Python又和QT什么关系哪?大家知道QT是C++写的,如果使用Python不能直接调用,所以有了Pyqt。有了Pyqt使用Python就可以直接调用QT,绘制图像了。例如:
#!/usr/bin/python
#simple.py
import sys
from PyQt4 import QtGui
app=QtGui.QApplication(sys.argv)
widget=QtGui.QWidget()
widget.resize(250,150)
widget.setWindowTitle('simple')
widget.show()
sys.exit(app.exec_())
执行之后,会输出一个对话框。
pyqt、webkit和qt之间的关系的更多相关文章
- PyQt(Python+Qt)学习随笔
老猿Python博文目录 老猿Python博客地址 PyQt学习随笔 PyQt(Python+Qt)帮助文档官网及文档下载 PyQt(Python+Qt)学习随笔:PyQt帮助文档导入assistan ...
- PyQt(Python+Qt)学习随笔:QDial刻度盘部件功能简介
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Dial刻度盘输入部 ...
- PyQt(Python+Qt)学习随笔:QSlider滑动条部件功能简介
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer输入部件中的Horizo ...
- PyQt(Python+Qt)学习随笔:富文本编辑器QTextEdit功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QTextEdit是一个高级的所见即所得的文档查看器和编辑器 ...
- PyQt(Python+Qt)学习随笔:QTableWidget表格部件中行高和列宽的计算方式
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget表格部件中行高和列宽的计算在Qt提供的资料中内容介绍比较泛,细节说得不清楚, ...
- .NET Core与.NET Framework、Mono之间的关系
随着微软的.NET开源的推进,现在在.NET的实现上有了三个.NET Framework,Mono和.NET Core.经常被问起Mono的稳定性怎么样,后续Mono的前景如何,要回答这个问题就需要搞 ...
- .NET Core 和 .NET Framework 之间的关系
引用一段描述:Understanding the relationship between .NET Core and the .NET Framework. .NET Core and the .N ...
- 实体之间的关系【Entity Relationships】(EF基础系列篇9)
Here, you will learn how entity framework manages the relationships between entities. Entity framewo ...
- php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系
以下PHP CGI.Fastcgi.PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 web ...
随机推荐
- ios 获得通讯录中联系人的所有属性 亲测,可行 兼容io6 和 ios 7
//获取通讯录中的所有属性,并存储在 textView 中,已检验,切实可行.兼容io6 和 ios 7 ,而且ios7还没有权限确认提示. -(void)getAddressBook { ABAdd ...
- Maven 构建
最近在工作中越来越经常的用到了Maven作为项目管理和Jar包管理和构建的工具,感觉Maven的确是很好用的.而且要将Maven的功能最大发挥出来,多模块是一个很好的集成例子. 一个Maven项目包括 ...
- Netty4.0学习笔记系列之二:Handler的执行顺序
Handler在netty中,无疑占据着非常重要的地位.Handler与Servlet中的filter很像,通过Handler可以完成通讯报文的解码编码.拦截指定的报文.统一对日志错误进行处理.统一对 ...
- Android基础笔记(九)- 广播
广播的概念 广播的生命周期 案例-监听短信到来并解析短信内容 案例-拦截外拨电话并设置区号 案例-SD卡状态监听 介绍一些经常使用的广播 发送自己定义广播 有序广播和无序广播 启程!! ! 广播的概念 ...
- JavaScript:动态代理之远程代理
背景 2008 第一次使用 AJAX 的时候好像使用的是 AJAX.NET,该组件支持为服务器 C# 类型提供 JS 代理,当时不是十分的明白.设计模式中有代理模式,不过真正需要我们手工写代理的次数却 ...
- 关于unity里pbr技术和材质 unity5默认shader和传统的对比
刚开始也不知道什么是pbr (Physically Based Rendering)后来才发现这是一种新的渲染方式 与之对应的是材质是pbs(Physically Based Shader) unit ...
- Java并发编程的艺术(十)——线程池(1)
线程池的作用 减少资源的开销 减少了每次创建线程.销毁线程的开销. 提高响应速度 每次请求到来时,由于线程的创建已经完成,故可以直接执行任务,因此提高了响应速度. 提高线程的可管理性 线程是一种稀缺资 ...
- STM32中基于DMA的ADC采样实例之MQ-2烟雾传感器
最近学习了一下STM32中的ADC采样,由于手头正好有一个MQ-2的烟雾传感器,所以正好可以测试一把.体验ADC采样的过程.下面介绍一下这个MQ-2烟雾传感器. 1.MQ-2烟雾传感器简介 MQ-2气 ...
- 第一章 Typescript 介绍
Typescript 介绍 一.Typescript 简介 Typescript 是微软开发的 Javascript 的超集,Typescript 兼容 Javascript,可以载入 Javascr ...
- 图片上传前预览、压缩、转blob、转formData等操作
直接上代码吧: <template> <div> <div class="header">添加淘宝买号</div> <div ...