Pywebview,这种类似于Electron的Python库已经发布了2.0版本。Pywebview允许您使用Web技术和Python相结合创建GUI应用程序。 使你可以用Python进行应用程序逻辑控制,使用Javascript和CSS生成GUI。 Pywebview对freeze支持良好从而实现了程序的可执行封装。
Pywebview2.0中最大的变化是Python和Javascript之间的双向通信,它完全消除了对Python Web服务器的需求。 下面我们以一个简单的Hello World来举例说明。
这里有两个通信模块,evaluate.js和creat_window。 您可以使用evaluate_js从Python中执行任意Javascript代码并返回结果。 要从Javascript运行你的Python代码,你需要定义一个自定义类并将其实例传递给create_window的API参数。 该类的所有公共方法将通过pywebview.api对象以Javascript形式公开。 需要注意的是,即使你不需要自定义方法,也必须定义一个参数。 如果你想传递多个参数,你可以把它们放在一个字典中。 返回值类型和参数类型将在Javascript和Python之间转换。
想要获得更多的示例,请参阅我们自己的TODO应用程序(https://github.com/r0x0r/pywebview/tree/master/examples/todos)
这种方式的另一大特点是支持多窗口。 要创建第二个窗口,你可以如下这样做。
主窗口创建后,后续的create_window调用并未被阻塞,还将返回一个可传递给其他函数的唯一ID。
其他新功能包括
创建窗口时,现在可以指定一个html文件的相对路径(不需要使用file://或任何其他协议)。 这种方式可使链接资源的问题得以解决。 同时也适用于应用程序封装时。
target ="_ blank"链接将在外部浏览器中被打开。
非输入元素上的文本选择默认为禁用。
新的加载自定义CSS的load_css函数。
查看完整的更新日志点击这里(https://github.com/r0x0r/pywebview/blob/master/CHANGELOG.md)
未来的计划
目前最大的挑战是对Windows上Internet Explorer引擎的全面兼容,它仍然是开发人员可用的唯一原生Web渲染器。 我们还未支持Edge,目前的情况来看也永远无法全面支持。 换句话说,目前在Windows上对Pywebview支持最好的还是IE11。 半快速解决方案将是引入QT支持与其WebKit引擎,并计划支持CEF。 这两种解决方案都会大大增加应用程序的分发大小,但目前没有其他方法可以和Web标准的发展速度与时俱进。
参与其中
Pywebview是一个资源有限的小项目,我们欢迎来自大家的任何帮助。 PR,文件,研究,什么都行。 如果你想参与其中请查看参与指南。(https://github.com/r0x0r/pywebview/blob/master/CONTRIBUTING.md)
英文原文:http://www.myegotraps.com/pywebview-2-0-released/
译者:W
领取专属 10元无门槛券
私享最新 技术干货