使用HTML/CSS/JS开发桌面程序(基于QWebkit),cssqwebkit,server.pyfro
使用HTML/CSS/JS开发桌面程序(基于QWebkit),cssqwebkit,server.pyfro
server.py
from PySide.QtCore import *from PySide.QtGui import *from PySide.QtWebKit import *import jsonclass service(QObject): @Slot(str, str, result=str) def fetch(self, path, data): path = path.replace('/', '.') lastdotidx = path.rindex('.') modulepath = path[:lastdotidx] funcname = path[lastdotidx+1:] params = json.loads(data) targetmodule = __import__(modulepath) targetfunc = getattr(targetmodule, funcname) if isinstance(params, dict): return json.dumps(targetfunc(**params))@Slot()def regist_service(): frame.addToJavaScriptWindowObject('__service__', service())@Slot(str)def on_title_changed(title): web.setWindowTitle(title)app = QApplication('wk')web = QWebView()web.settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)frame = web.page().mainFrame()frame.javaScriptWindowObjectCleared.connect(regist_service)web.setUrl(QUrl('index.html'))web.titleChanged.connect(on_title_changed)web.show()app.exec_()
test.py
def testfunc(name): return "Hello :%s<br />" % name
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html><head><script> for(var i=0; i<10; i++) document.write(__service__.fetch('test/testfunc', '{"name":"asdf"}'))</script></head><body></body></html>
相关内容
- 从百度下载MP3歌词并把歌词设置在MP3文件中,以便在
- 最新python3 的金山快盘登录签到多功能 学习好帮手,
- 使用Python画三维函数图象,python画函数图象,[Python]代码
- 太极匀手,马步必备,太极匀马步必备,[Python]代码#!
- python调用win32应用程序,python调用win32,[Python]代码fr
- 斐波那契数,,[Python]代码#-
- 将List转成XML,List转成XML,[Python]代码#
- 在pymongo中使用sql的like语句,pymongolike,db.houses.fi
- python 解决0-1背包问题算法,python0-1背包算法,#!/usr/bin
- python执行外部程序的四种方法汇总,python四种方法,1、
评论关闭