python开发桌面应用程序(python桌面应用程序开发教程)
Electron 框架中调用 Python 构建桌面应用
不同的语言、框架都有自己擅长的领域:Electron 基于 Chromium 和 Node.js 能以 Web 开发的模式打造桌面应用,开发用户界面又快捷又简单;Python 则在数据分析、自动化脚本等领域有非常多的应用。两者的社区生态都十分强大,由两者共同构建应用,在界面开发、功能、性能上能够强强联合;
为了简单验证技术可行性,我们来编写一个 Demo:
目的:验证 Electron 打造的桌面应用能够调用 Python,思路是使用 RPC 或 HTTP 或 WebSocket 进行通信
Demo 功能:输入 x、y 坐标,程序会移动鼠标到屏幕的 x,y 位置(通过 python 库 pyautogui 实现)
Demo 运行环境:MacOS、pyInstaller: 版本 4.5.1、python: 版本 3.9.7
源码:-------- 项目源码 --------
注意:移动鼠标需要授予应用控制权限,在 MacOS 下设置 偏好设置 - 隐私 - 辅助功能 - 允许对应的应用。
技术栈:NodeJS、Electron、Python、aiohttp(HTTP、WebSocket)、pyautogui(控制鼠标)
为了使 NodeJS 和 Python 能够通信,Python 需要启动一个本地通信服务,Demo 中 py/api.py 能够启动一个本地 HTTP 服务:
然后我们需要执行 Python 代码以启动服务,为了使 NodeJS 可以执行 Python,我们使用 pyinstaller 将 Python 打包成可执行文件:
Python 启动了本地 HTTP 服务后,Chromium 和 Node.js 就可以通过请求的方式,与 python 连接通信了:
简单来说三个步骤:
本项目只是一个验证思路的 Demo,真的需要在项目上实践,还需要考虑以下几个点:
应该使用 RPC 通信而不是 HTTP 或者 WebSocket,Demo 使用 HTTP 只是搭建方便。实践中在建立连接、保持连接、异常重连都需要编写更多的逻辑来处理。为什么 Demo 没有使用 zerorpc? 这个库已经 4 年没有维护了,不兼容新版 NodeJS。
项目通过 pyinstaller 打包成可执行文件来调用 python。实际上其他能编译为可执行文件的语言也一样。还可以使用 WebAssembly 将其他语言编译成 .wasm,在 NodeJS 中引入执行。
python开发的桌面软件有哪些
有很多可以用,最流行的几个是:
tkinter, python 自带的,跨平台 GUI包, 你可以去优酷(莫烦 tkinter) 学习下怎么用 tkinter.
pyqt, 这个是可以用起来简单一点,但是学起来可能要花点时间.(适合有一定python基础的)
Kivy, 这个还可以编安卓的哦.(适合有一定python基础的)
wxPython, 这个也不错.(适合有一定python基础的)
python用来开发桌面软件可有什么不错的框架?
在web开发方面,有从轻到重量级不同的很多框架,比如web.py, Django, TurboGears, Zope等,其中Zope已经达到了企业级应用的量级
桌面程序:wxPython和py2exe都是开源免费软件,pyQt4 等常用的。
Python如何进行GUI桌面开发?有哪些不错的库可以推荐?
Python进行GUI开发的库其实很多,下面我简单介绍几个不错的库,感兴趣的朋友可以自己尝试一下,实验环境win10+python3.6+pycharm5.0,主要内容如下:
tkinter
这个就不用多说了,python自带的GUI开发标准库,对于开发小型简单的应用来说,完全可以了,开源、跨平台,使用起来非常方便,下面我简单测试一下,主要代码如下:
点击运行程序,效果如下,一个窗口一个Label标签:
easygui
这个是基于tkinter的一个窗口GUI库,可以快速创建窗口对话框,包括常见的登陆对话框、注册对话框等,下面我简单介绍一下这个库的安装和使用:
1.首先,安装easygui,这个直接在cmd窗口输入安装命令“pip install easygui”就行,如下:
2.安装完成后,我们就可以直接编写代码进行测试了,主要代码如下,非常简单:
点击运行这个程序,效果如下:
kivy
这是一个跨平台的GUI应用程序开发库,可以用来开发安卓、苹果应用,一套程序,可以处处运行,下面我简单介绍一下这个库的安装和使用:
1.首先,安装kivy,这个直接按官方教程安装就行,如下:
2.安装完成后,就可以直接编写代码进行测试了,主要代码如下,非常简单:
点击运行程序,效果如下,这里你可以将其打包为手机应用,安装到手机上:
wxpython
这也是一个免费、跨平台的Python GUI开发库,相比较前面的tkinter来说,功能更为强大,控件也更多,下面我简单介绍一下这个库的安装和使用:
1.首先,安装wxpython,这个也直接在cmd窗口输入命令“pip install wxpython”就行,如下:
2.安装完成后,我们就可以直接编写相关代码进行测试了,主要代码如下,非常简单,一个简单的文本编辑器:
点击运行这个程序,效果如下:
pyqt
这个Qt的一个Python接口库,借助于Qt强大的用户界面,Python也可以快速开发出GUI程序,组件更多,也更方便,只要你有一定的Qt基础,很快就能掌握这个库的使用,下面我简单介绍一下这个库的安装和使用:
1.首先,安装pyqt,这个直接在cmd窗口输入安装命令“pip install pyqt5”就行,如下,安装需要稍微等待一会儿:
2.安装完成后,我们就可以直接编写代码进行测试了,如下,一个简单的计算器:
点击运行这个程序,效果如下:
至此,我们就介绍完了这5个Python GUI库。总的来说,这5个库使用起来都非常不错,如果你的应用界面比较简单,功能要求不高,可以选择tkinter和easygui,如果界面比较复杂,功能要求比较复杂,可以考虑使用wxpython或pyqt,当然,你也可以使用其他GUI库,像pygame等,根据实际项目需求而定,网上也有相关资料和教程,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。
python简单的GUI界面化的有内置的模块tkinter相对来说简单,但是做出来的界面也简单。目前市场上用的多的还是QT吧!python有的QT是pyqt5当前使用比较多。如果用的pycharm开发工具也可以进行配置进行开发,最好的用eric专门开发PYQT的软件。
python为什么不适合开发桌面软件?
不适合,因为python本身是脚本语言,如果要开发桌面软件,要用到py2exe等工具来将一个有GUI的.py文件转换成exe等可执行文件,在这个过程中,很容易将源代码暴露给用户看,也就是说这和开源没多大区别了。
我个人感觉更适合开发各种管理系统。看我接下来举的例子你就明白了。
OpenERP用的就是python。以下说的c/c++、java、python程序员,具有相同的开发能力、熟练程度。我们来做个比较:
1.开发时间,肯定比java、c/c++要快;2.安全性,看总体设计;3.单个程序员的费用,肯定要比java、c/c++高;4.程序员数量,肯定要比java、c/c++要少;5.总体费用,肯定要比java、c/c++要低。
因为管理类系统可能注重交互,用python做问题不大。python开发web应用还是很给力的。所以,你明白了吗?
因为Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语,它使你能专注于解决问题而不是去搞明白语言本身。
除此之外,Python所拥有的标准库更是很大一部分人选择它的理由。
它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。
当你想开始尝试做数据分析的时候,Python无疑会是一个很棒的选择。当然,开发软件也是。在Python中,对象既可以赋值给一个变量,也可以作为参数传递给一个函数。以下都是Python中的对象:数字、字符串、列表、元组、集合、字典、函数以及类。
Python中的函数与普通数学中的函数基本上是一致的——它接收输入数据,对数据进行处理并输出结果。输出的结果完全取决于函数是如何被设计的。另一方面,Python中的类是被设计为输出其他对象的对象的原型。