作为一名热衷于编程的开发者,我始终在寻找能够提升工作效率和应用质量的工具。在开发Pytho界面方面,我尝试了多种界面开发框架,从Tkinter到PyQt,再到Kivy,每一种都有其独特的魅力和局限性。然而,在我不断探索的过程中,我发现这些工具在某些方面并不能完全满足我的需求,尤其是在界面美观度、开发效率方面。
经过长时间的比较和实践,我最终决定采用aardio作为我的界面开发工具。aardio的出现,让我眼前一亮,它不仅提供了简洁的语法和丰富的控件库,而且在性能优化和打包部署方面也表现出色。它让我能够快速地将Python的逻辑与美观的界面结合起来,创造出既实用又吸引人的应用程序。
在接下来的文章中,我将分享我选择aardio的理由,从而为其他Python开发者提供一个更加人性化、高效的界面开发选择。希望我的经验能够帮助到那些和我一样,在寻找最佳界面开发工具的开发者们。
本篇也是一个保姆级教程,只要你花几分钟时间看完,就能掌握一个高效率的界面制作方法。
一、调用方便
- aardio提供了多种方法来实现与Python的交互,直接一键生成对应调用的aardio工程,下面看生成工程的选项图:
这里我选择了任意版本调用方式建立一个pytest工程,看上图关于任意版本调用的说明,也正是我选择它的理由!
- 创建工程后,在pyMain文件就是我们调用的py文件,里面是一个jsonrpc模版,双击打开默认使用vscode来编辑
按F5运行例子,请双击图片放大查看:
从运行的结果看,直接调用了python模版里的greet 函数,基于这个方法我们可以写更多的方法在里面给aardio进行调用
- 在main.aardio里,是如何调用python模版里的函数,我们打开main.aardio就能看到有详细的注释,只需要一句代码就能调用相应的函数
- 任意版本的意思,就是可以调用不同的版本python,默认是调用3.8.10 64位的python,如果想修改版本和位,可以修改下面红框的代码:
比如:我要修改为3.11.9,64位
如果要32位就将下面一行取消注释,运行的时候会自动下载相应版本的python嵌入版本到aardio工程中!
总结:通过上面的调用演示,能够看出aardio调用python交互非常方便,而且对于熟悉python的你并不需要多少额外的学习成本!
二、一键打包成独立exe,体积小,速度快
Python打包工具,如PyInstaller、cx_Freeze和py2exe等,允许开发者将Python脚本及其依赖打包成独立的可执行文件。这些通常以命令行的形式来实现打包。
这个对于开发并不友好,谁没事记一大堆命令,忘记还要去查找。即使网上有类似的界面式打包,因为不是集成环境而是第三方库,往往每次都要输入文件路径和输出路径,甚至版本的问题或项目大了打包很容易失败!
aardio的打包功能则更加集成和用户友好,它将打包过程简化为几个简单的步骤:
- 点击工程,在右边属性输入工程信息(打包后的文件属性设置)
别小看这一步,在python的众多打包工具里要实现这些就已经比较耗时了
- 点击发布,等待1-2秒后(极速)就已经打包完成,点击打开发布目录
到这里其实已经打包操作完成,如果你还需要将文件进行压缩然后打包成独立的exe,在弹出的对话框里勾选 "upx压缩" 再点击 "转换为独立exe"
生成之后就可以删除py文件夹,一个独立exe。运行效果:
生成的体积17m左右,这对于pyqt/pyside这些来说,动辄就50m起步,已经体积非常小了
总结:全程就是点几个下选项和按钮,无需输入路径什么的,打包速度也快几秒钟就打包完成!
三、界面制作简单
有了上面的内容还未够,从这里开始才是真正的aardio界面为什么是首选,主要的原因就是界面制作非常简单!
- 集成的视图设计器
在设计视图中:左边为控件,点击相应的控件,在中间画控件大小,在右边设置控件的属性,由于aardio是国人开发,整个界面都是中文为主。相信你看看下图就已经学会了!
布局就像以前的vb或delphi,就不多说了看下图。这种控件布局我觉得最舒服。至于python那些界面库常用的横向,竖向,网格布局,我都觉得复杂了!你说呢?
- 控件的事件、属性、方法
常用的事件,通过双击控件就会自动切换到代码视图并生成对应的事件方法,下图双击button按钮自动生成代码:
如果你还需要控件的其它事件,只需要写入on开头就可以自动生成:
属性和方法也很简单:
窗体名.控件名.属性或方法 , 有括号的是方法,没括号的就是属性。全部都有中文的智能提示,就怕你看不懂哈!
四、美化界面或定制美观界面
- 上面已经演示了如何制作界面,但是这并不够,因为界面还是比较原生,不够现代化,这时我们可以通过一些第三方库来美化界面
下面是培训群专用扩展库工具,可以方便下载第三方库和例子
skin.sharp库是通过加载皮肤来实现统一风格的和透明度的美化界面库:
下面是演示程序,有几十种皮肤可选择:
加载方法也很简单,导入库,一句代码即可,而且可以内存加载,并不影响生成独立exe:
- 定制美观界面
随着时代进步,这种套皮肤美化的界面并不是很流行,现在流行的是定制界面用图片或自绘的方式或其它渲染方式来实现的界面更加美观和品牌化
在aardio中我们可以使用plus控件来实现定制控件的背景颜色,前景颜色,边框等等。
- 如果你觉得我没有设计天分,不能设计出好看的控件,我们也有相应的风格库,比如 element ui 风格的控件库 win.ui.css
直接一句代码生成,另外还有其它特殊的控件,下面的生成各界面控件和样式演示:
官方制作的plus界面:
五、web界面
有了上面的控件其实我们已经基本满足开发小程序的需求,但是可以使用的控件不够多。如果你熟悉web界面,我们可以使用webview2来加载web界面,web的ui库有多少就不用多说了。
python也有类似的库如pywebview,但是使用下来有明显的卡顿感和加载延迟。
aardio跟webview2交互很简单,而且速度快没有卡顿感。专用扩展库的web.view2库还加入了自动化功能,内嵌网页进行自动化,没有驱动,不需要浏览器也不容易被检测到
六、多进程和多线程
aardio本身提供了真多线程,遇到需要耗时的操作,我们可以放到线程里不会卡界面。
如果你的逻辑使用的是python功能,由于是jsonrpc方式,每创建一个线程来调用会创建一个python进程。实际就会变成多进程调用python,速度比直接python使用伪多线程快很多。
下图使用thread.create循环创建10个线程调用python的函数,将之前功能放到函数里就可以
七、学习成本低
如果你已经看完了上面的介绍并进行实践,那么你已经学会使用aardio制作界面并调用python
aardio本身也是一门编程语言,我平时使用aardio开发程序实际调用到python的情况不多,因为aardio本身就是非常方便国人学习的编程语言有丰富的api,详细的介绍在下面链接:
八、免费
aardio作为一款免费的开发工具,为开发者节省了购买软件许可的费用。这意味着,无论是个人开发者还是小型团队,都可以无成本地使用aardio进行项目开发,对于那些一年要好几百甚至几千的python界面三方库,显著降低了开发成本。