HTML+CSS+python+qtwebkit打造跨平台桌面应用(一)

来源:互联网 发布:淘宝账号怎样手机申诉 编辑:程序博客网 时间:2024/06/04 19:42

目录

  • 引言与环境配置
  • 数据交互问题(这应该是最先想到,html使用js控制的,如何跟python交互数据呢)
  • 文件编码问题,为了国际化、通用化,要用unicode否则汉字不能正常显示
  • 界面问题,具体如何制作界面,如何实现无边框等
  • 框架问题,有没有更通用性的框架,比如将其包装成MVC模式

引言

好的GUI能为程序增光添彩,但是设计出好的GUI并不是一件容易的事,一些大公司往往都有自己的GUI设计团队和定制的GUI解决方法,那么小公司或者个人呢?有没有廉价的、易学、通用的解决方案呢?大家可能首先想到的是MFC、WPF、C#等IDE自带的框架和控件库,也有人会说用wxWidget、QT等免费的第三方控件,而我认为HTML+CSS才是最通用、最低成本的解决方案。

我们的编程环境是GUI部分用qtwebkit,程序用python主要是为了快速开发。

简单说一下HTML+CSS的优点

  • HTML+CSS是一套标准,注意是标准,不是哪个公司自己搞出来的,而是通用的,无论计算机如何发展,这套标准永远不会被淘汰(否则全世界的网站都要重新设计美工了),其实现在很多以前的框架都已经或者即将被淘汰,举例来说,比如微软吧,首先它的MFC早已经过时了,而WPF也即将被放弃(是微软自己放弃的,因为他又开发了新的东西,微软一直都是这么坑),所以我们学知识、用工具,要考虑到通用性和未来,没有人会愿意记住即将被淘汰的知识,然后又不得不重新学起。
  • HTML5+CSS3具有强大的表现力。
  • HTML+CSS是跨平台的,另外python和qt(qtwebkit)都是跨平台的,所以我们的程序也是跨平台的。

顺便提一下,好像现在也有不少用webkit做桌面级应用程序的框架,Inter开发了比较火的框架叫Node-Webkit,软件Wunderlist使用的一个开源的框架叫TideSDK(2012年发布的,好像好久没维护了,一直是beta版),国外还有收费的叫TideKit,还有好多吧。对于前两个我都尝试使用过,个人觉得那些被封装的太多,不靠谱(作为C++程序员,都力求知根知底),还有一点就是他们用Js写大部分逻辑,所以你的源码是暴露的,另外Js的执行效率也不得不考虑。

环境配置

安装环境的配置

  • python2.7(当然也可是3.4) 下载
  • pyqt  下载
  • eclipse  下载 (需配置python的环境 baidu上很多)

注意区分32位和64位的,安装时要对应

实现:HelloWorld

[code lang="c"]
from PyQt4 import QtGui, QtWebKit

class myWindow(QtWebKit.QWebView):
def __init__(self, parent=None):
super(myWindow, self).__init__(parent)
self.resize(400, 200)
self.setHtml("</pre>
<h1>QtWebKit + Hello Python</h1>
<pre>")

if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
main = myWindow()
main.show()
sys.exit(app.exec_())
[/code]

helloworld

查看原文:http://blog.wxameng.com/cross-platform-app-with-html-css-python-qt/

0 0