python做界面的一个新思路(初始篇)

html-css08

python做界面的一个新思路(初始篇),第1张

python做界面我首先想到的是pyqt5,但是笔者之前基本是用wpf做界面,再用其他的做界面都有点不畅快的感觉。直接用到了HTML + CSS + js。随着前端技术的快速发展,如VUE,AUI这类框架的兴起,做个炫酷的页面,远比后端做个界面要快捷方便的多。

但是HTML + CSS + js是运行在浏览器里的,这个系列文章就是要打破python和前端的壁垒,让它们携手打造桌面程序。

那么这个心思路就是,利用pyqt5的QtWebEngineWidgets和QtWebChannel来做媒介,

python完成后台功能,HTML + CSS + js完成全部的界面功能。

界面需要python功能时,js方便的调用python函数并获取返回值。这样各自完成擅长部分,想想都有点小激动呢。

那这样是否靠谱呢?

根据笔者的目前尝试,感觉还是很靠谱的:

1 运行不卡顿,相对于纯的pyqt我感觉这种界面运行起来更流畅。

2 QtWebEngineWidgets移植V8引擎,基本和谷歌的效果是一样的。Vue这样的框架也可以直接引用。

讲QtWebEngineWidgets的文章有很多,我学习这个时候看到网上的很多文章也和受益,但是,基本都是讲的一样的,没有深挖。

首先,QtWebEngineWidgets和QtWebChannel是可以实现双向交互的,但是,在应用的过程中我发现,python调用js会比较简单,有现成的语法可用,而且传输过程中有的数据的类型都不用转换。而且能获取到js的返回值。

而js调用python就复杂一点,传递类型也只能字符串和int(目前我测试的结果是这样),目前网上大多的例子就是基于共享属性这个概念,js是可以调用python函数,但是没法获取到返回值。

但是应用中你就会发现,基本都是js调用python,比如界面中的按钮点击后需要执行数据分析,然后将结果渲染在界面上。那么过程就是js调用py并获取返回值。

今天的内容就是这些,喜欢的可以点赞支持,如果点赞较多,关于这个知识点我将继续做一期有趣的内容。谢谢!

PyQt,一个基于Qt的Python接口包,可以直接使用Qt的控件,还可以使用QSS进行界面美化,下面我简单介绍一下这个包的安装和使用,实验环境Win7+Python3.6+PyCharm5.0,主要内容如下:

1.首先,安装PyQt,这个直接在cmd窗口输入命令“pip install pyqt5”就行,如下,由于安装包比较大,所以需要等待一会儿:

这里我新建了一个简单的窗口程序,一个登录页面对话框,2个QLabel,2个QLineEdit和2个QPushButton,如下,设计完成后,可以直接编辑对应控件的styleSheet属性,利用QSS(类似CSS)对控件进行美化,也可以在代码中进行详细美化设计(如果美化比较复杂的话,可以专门编写QSS文件,然后在程序中加载就行):

这里我新建了一个简单的窗口程序,一个登录页面对话框,2个QLabel,2个QLineEdit和2个QPushButton,如下,设计完成后,可以直接编辑对应控件的styleSheet属性,利用QSS(类似CSS)对控件进行美化,也可以在代码中进行详细美化设计(如果美化比较复杂的话,可以专门编写QSS文件,然后在程序中加载就行):

设计完成的UI界面,可以直接使用自带转化工具pyuic5转化为Python程序(命令pyuic5 -o py文件 ui文件,如pyuic5 -o test.py test.ui),如下,就是刚才设计的UI界面的Python代码:

这里我们再添加一下main函数,直接创建上面类的对象,显示对话框就行,如下:

点击运行这个程序,效果如下,和上面设计的一样,非常方便:

PyQt是一个基于Qt的接口包,可以直接拖拽控件设计UI界面,下面我简单介绍一下这个包的安装和使用,感兴趣的朋友可以自己尝试一下:

1、首先,安装PyQt模块,这个直接在cmd窗口输入命令“pip install pyqt5”就行,如下,整个模块比较大,下载过程需要等待一会儿,保持联网:

2、安装完成后,我们就可以直接打开Qt自带的Qt Designer设计师设计界面了,这里默认会安装到site-packages->PyQt5->Qt->bin目录,打开后的界面如下,可以直接新建对话框等窗口,所有的控件都可以直接拖拽,编辑属性,非常方便:

相关推荐:《Python基础教程》

3、这里我简单的设计了一个登录窗口,2个输入框和2个按钮,如下,这里可以直接使用QSS对界面进行美化(设置styleSheet属性即可),类似网页的CSS,如果你有一定的前端基础,那么美化起来会非常容易:

设计完成后,还只是一个ui文件,不是现成的Python代码,还需要借助pyuic5工具(也在bin目录下)才能将ui文件转化为Python代码,切换到ui文件所在目录,输入命令“pyuic5 -o login.py login.ui”即可(这里替换成你的ui文件),转化成功后的Python代码如下(部分截图):

还需要在最下面添加一个main函数,创建上面Ui_Form类对象显示窗口即可,如下:

最后点击运行程序,效果如下,和刚才设计的界面效果一模一样:

至此,我们就完成了利用Python的PyQt模块直接拖拽控件来设计UI界面。总的来说,整个过程非常简单,只要你有一定的Python基础,熟悉一下操作过程,很快就能掌握的,当然,还有许多其他UI开发模块,像tkinter,wxPython,Eric6等,也都非常不错。