Python+WebKit+HTML开发桌面应用程序

Python+WebKit+HTML开发桌面应用程序

前言

几天前写了一个备份的小工具,用Python写个脚本,也就花个一天的时间搞定,给客户用了一下,对功能很满意,但对界面不满足,想要一个图形界面来管理;
一个备份脚本,有必要整成这样子吗?没办法,谁让是上帝的要求呢,就研究一下;先后找了python的tkinter、pyqt,尝试着画一些界面,虽然功能可以实现,但界面很难看;恰好,在查看pyqt的API文档的时候 ,发现了QWebView组件,据介绍可以实现一个浏览器,并且浏览器中的JS可以与Python代码进行交互。忽然眼前一亮,我不正是我想要的吗!
抽几天时间把工具写完了,目前运行良好;想写篇博客做个记录,也想给需要进行此类开发的朋友做个示例,就把这个工具最核心的内容做了一个DEMO。现在,就把这个小DEMO的开发过程做个说明;

关于作者:
天涯哥,程序员
Java,Python,C,Javascript
税务、金融、教育
57856702@qq.com

功能简介

这个小DEMO用于显示计算机上的一些信息,显示内容不是主要的,主要为了体现如何用python+HTML开发桌面应用程序。

1.使用HTML开发一个界面;
2.在页面上显示主机信息;
3. 实现功能时,体现JS调用Python和Python调用JS;

最终实现的主界面如下:

主界面功能

准备材料

开发工具:Eclipse
开发语言:python2.7
界面工具包:PyQT4

目录结构

这里写图片描述

说明:
demoUI.py : python主体程序 ,主要实现窗口创建,加载index.html页面,python与JS的交互;
views/index.html : 主要进行数据展示,及与python交互的js程序

demoUI.py开发

引入的包
from PyQt4 import QtCore
from PyQt4 import QtGui
from PyQt4 import QtWebKit
from PyQt4 import QtNetwork

#处理中文问题
import sys,json
from PyQt4.Qt import QObject
reload(sys)  
sys.setdefaultencoding('utf8')

前四行代码,主要是引入Qt相关的包,这里使用的PyQt4;
后三行代码,主要是为了处理中文问题,可以忽略,但遇到中文乱码的时候,想起来这句话,把它加上就行了

DemoWin类
class DemoWin(QtWebKit.QWebView):

    def __init__(self):
        QtWebKit.QWebView.__init__(self)
        self.resize(800, 600)
        self.setUrl(QtCore.QUrl('views/index.html'))
        self.show()
        mainFrame = self.page().mainFrame()
        winobj = WinObj(mainFrame)
        mainFrame.javaScriptWindowObjectCleared.connect(
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值