用Python写个Metro风格的桌面程序

Python有很多GUI库,比如自带的tkinter, Qt, wxPython等, 还有基于OpenGL的Kivy。但是学习曲线都很高,要学习layout, 组件库,事件驱动等。现在有了electron的话,我们可以用Python写个后台服务,但还是要学习electron的API。搜了搜发现了eel这个库,可以直接用Python和一点html知识就可以创建桌面程序。

首先当然要pip install eel, 然后写个简单的python程序,初始化和启动eel

init方法会读取web目录下的文件,ssl.expose会暴露下面的方法给前端,javascript就可以通过eel.hello()调用它了. 最后启动eel

第二步我们创建一个web目录,新建一个index.html

在head里,我们要引用下metroui必需的css和js文件,eel也需要引用一个eel.js。因为后台python和前端是两个进程,要获取数据的话,我们就需要async和await两个关键字去从后台取数据,同时方法名后加一对额外的括号。如果不需要数据的话,则直接eel.hello()就好。

在copyval方法里我们调用python hello方法,获取值后用jQuery赋值给textarea。

nav里用的是metroui自带的菜单和图标,并没有什么神秘的地方。

最后的效果如下,象不象最新版的Office?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181005A0KAFV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券