前言

最近在维护一个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之间的关系的更多相关文章

  1. PyQt(Python+Qt)学习随笔

    老猿Python博文目录 老猿Python博客地址 PyQt学习随笔 PyQt(Python+Qt)帮助文档官网及文档下载 PyQt(Python+Qt)学习随笔:PyQt帮助文档导入assistan ...

  2. PyQt(Python+Qt)学习随笔:QDial刻度盘部件功能简介

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Dial刻度盘输入部 ...

  3. PyQt(Python+Qt)学习随笔:QSlider滑动条部件功能简介

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer输入部件中的Horizo ...

  4. PyQt(Python+Qt)学习随笔:富文本编辑器QTextEdit功能详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QTextEdit是一个高级的所见即所得的文档查看器和编辑器 ...

  5. PyQt(Python+Qt)学习随笔:QTableWidget表格部件中行高和列宽的计算方式

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget表格部件中行高和列宽的计算在Qt提供的资料中内容介绍比较泛,细节说得不清楚, ...

  6. .NET Core与.NET Framework、Mono之间的关系

    随着微软的.NET开源的推进,现在在.NET的实现上有了三个.NET Framework,Mono和.NET Core.经常被问起Mono的稳定性怎么样,后续Mono的前景如何,要回答这个问题就需要搞 ...

  7. .NET Core 和 .NET Framework 之间的关系

    引用一段描述:Understanding the relationship between .NET Core and the .NET Framework. .NET Core and the .N ...

  8. 实体之间的关系【Entity Relationships】(EF基础系列篇9)

    Here, you will learn how entity framework manages the relationships between entities. Entity framewo ...

  9. php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系

    以下PHP CGI.Fastcgi.PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 web ...

随机推荐

  1. Wireshark的简介

    -------------------------------------------------------------- <Wireshark数据包分析实战>这本书其实还很不错,当时买 ...

  2. ios成长之每日一遍(day 8)

    这几天都有一些任务要跟, 把ios的学习拉后, 看看要抓紧咯, 看看轮到的学习的是UITableView. BIDAppDelegate.h #import <UIKit/UIKit.h> ...

  3. ifram 取父窗体的URL地址

    var url=''; try { url = window.top.document.referrer ;     } catch(M) {           if (window.parent) ...

  4. 在MFC内竟然不可以解析“Mat”

    调试了好久,在MFC内竟然不可以解析“Mat” 总是显示"Mat"没有定义,改动include.lib.依赖库, 不断地改动: #include "opencv2/img ...

  5. 第一章 AOP

    关于AOP,通常我们会使用AspectJ注解来做,共有6中切面 前置:@Before 后置:@After 返回值:@AfterReturing 异常:@AfterThrowing 环绕:@Around ...

  6. SIFT(Scale-invariant feature transform) & HOG(histogram of oriented gradients)

    SIFT :scale invariant feature transform HOG:histogram of oriented gradients 这两种方法都是基于图像中梯度的方向直方图的特征提 ...

  7. 【deep learning学习笔记】注释yusugomori的DA代码 --- dA.cpp -- 模型测试

    测试代码.能看到,训练的时候是单个样本.单个样本的训练的,在NN中是属于“stochastic gradient descent”,否则,一批样本在一起的,就是“standard gradient d ...

  8. 解决MTP device安装失败,手机无法被读取

    操作步骤: 1.  我的电脑—>管理—>设备管理器—>便携设备(MTP)-->右击-更新驱动 2.  选择浏览计算机以查找驱动程序软件—>从计算机列表选择—>MTP ...

  9. [转]使用HackCube-Special分析胎压传感器信号

    胎压无线传感器安全检测 我们团队之前也有用USRP和GNUradio对其他的胎压设备进行的安全检测,我不使用这套环境的原因是软件无线电的设备和笔记本已经算体积不小的一套设备,通常测试环境都在户外,在这 ...

  10. 构造读写IRP(转)

    DDK示例中的代码. NTSTATUSFltReadSectors(  IN PDEVICE_OBJECT DeviceObject,  OUT PVOID Buffer,  IN ULONG Len ...