利用aardio给python编写图形界面


Posted in Python onAugust 21, 2017

前阵子在用python写一些小程序,写完后就开始思考怎么给python程序配一个图形界面,毕竟控制台实在太丑陋了。

于是百度了下python的图形界面库,眼花缭乱的一整页,拣了几件有“特色”有“噱头”的下载下来做了个demo,仍旧不是很满意,不是下载安装繁琐,就是界面丑陋或者难写难用,文档不齐全。

后来那天,整理电脑文件发现了6年前下载的aatuo(现已更名aardio),顿时一阵惊喜。

先说说aardio,2011年7月的时候,它还叫aauto,那时的自己还醉心于开发桌面应用,VC++(MFC),C#(Winform),Java(Swing),Delphi都被玩了个遍,偶尔网上百度到了aauto,下载下来试用了下,你会被它的IDE“免安装”和“使用友好”感动到,而且最终发布的EXE文件也很小,确实是一个很适合开发小工具或者小应用的语言。后来,aauto更名为aardio,我也有幸成为目睹aardio一路成长的开发者。

当时,我的第一直觉是,aardio应该可以给python写个图形界面,抱着试试的想法,我先用python写了一个简单的不能再简单的函数。

def add(a,b):
 return a+b

然后,仿照以前用C语言写DLL,然后让别的语言调用一样,我参照aardio里面的代码范例,写了这样的代码:

import py3;
 
var code = string.load("add.py");
py3.exec(code);
py3.exec(code);
__main__ = py3.addModule("__main__"); //创建模块对象

编辑“计算”按钮的单击事件

winform.button.oncommand = function(id,event){
 //winform.msgbox( winform.button.text );
 var n1=tonumber(winform.n1.text);
 var n2=tonumber(winform.n2.text);
 var s = tonumber(__main__.add(n1,n2));
 winform.sum.text=s;
}

最后效果如图:

利用aardio给python编写图形界面

写在最后的话,我想谈谈python这个脚本语言,我们知道python是解释型语言,所以无需编译就可以运行。所以对于这个aardio界面搭配的python程序,以后如果要修改部分函数,只需要用文本编辑器修改py文件即可运行,而无需重新编译。

代码清单:

import win.ui;
import py3;
/*DSG{{*/
var winform = win.form(text="加法计算器";right=256;bottom=331)
winform.add(
button={cls="button";text="计算";left=72;top=267;right=188;bottom=305;z=1};
equal={cls="static";left=30;top=156;right=237;bottom=181;transparent=1;z=6};
n1={cls="edit";left=72;top=30;right=188;bottom=68;edge=1;font=LOGFONT(h=-29);multiline=1;z=3};
n2={cls="edit";left=72;top=92;right=188;bottom=130;edge=1;font=LOGFONT(h=-29);multiline=1;z=4};
static={cls="static";text="+";left=14;top=91;right=62;bottom=126;align="center";center=1;font=LOGFONT(h=-29);transparent=1;z=5};
sum={cls="edit";left=72;top=204;right=188;bottom=242;edge=1;font=LOGFONT(h=-29);multiline=1;z=2}
)
/*}}*/
 
var code = string.load("add.py");
py3.exec(code);
py3.exec(code);
__main__ = py3.addModule("__main__"); //创建模块对象 
 
var i =0 ;
for(i=1;50;1){
 winform.equal.text=winform.equal.text+"-"
}
 
winform.button.oncommand = function(id,event){
 //winform.msgbox( winform.button.text );
 var n1=tonumber(winform.n1.text);
 var n2=tonumber(winform.n2.text);
 var s = tonumber(__main__.add(n1,n2));
 winform.sum.text=s;
}
 
winform.show()
win.loopMessage();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
python3.3使用tkinter开发猜数字游戏示例
Mar 14 Python
从零学python系列之从文件读取和保存数据
May 23 Python
Python比较两个图片相似度的方法
Mar 13 Python
全面了解python字符串和字典
Jul 07 Python
使用PyInstaller将python转成可执行文件exe笔记
May 26 Python
python计算两个数的百分比方法
Jun 29 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
Jun 17 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 Python
Python字典和列表性能之间的比较
Jun 07 Python
Python实现图片转字符画的示例代码
Aug 21 #Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 #Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 #Python
Python编程之微信推送模板消息功能示例
Aug 21 #Python
使用Python写一个贪吃蛇游戏实例代码
Aug 21 #Python
virtualenv实现多个版本Python共存
Aug 21 #Python
基于Python对象引用、可变性和垃圾回收详解
Aug 21 #Python
You might like
为Extjs加加速(javascript加速)
2010/08/19 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
面包屑导航详解
2017/12/07 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
python使用RNN实现文本分类
2018/05/24 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
个性化皮包、小袋、生活配件:Mon Purse
2019/03/26 全球购物
介绍一下游标
2012/01/10 面试题
小学教师的个人自我鉴定
2013/10/24 职场文书
企业行政文员岗位职责
2013/12/03 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
《识字五》教学反思
2014/03/01 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
安全目标责任书
2014/07/22 职场文书
2015年科室工作总结
2015/04/10 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书