利用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 相关文章推荐
简单介绍Python中的decode()方法的使用
May 18 Python
深入源码解析Python中的对象与类型
Dec 11 Python
python实现多线程的方式及多条命令并发执行
Jun 07 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
Python双向循环链表实现方法分析
Jul 30 Python
详解Python发送email的三种方式
Oct 18 Python
python实现弹跳小球
May 13 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
Python发展史及网络爬虫
Jun 19 Python
基于Python测试程序是否有错误
May 16 Python
python的链表基础知识点
Sep 13 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
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
详解Python编程中基本的数学计算使用
2016/02/04 Python
python实现获取Ip归属地等信息
2016/08/27 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
Python numpy数组转置与轴变换
2019/11/15 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
如何处理简单的PHP错误
2015/10/14 面试题
高中军训感想300字
2014/03/04 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
团队会宣传标语
2014/10/09 职场文书
导师对论文的学术评语
2015/01/04 职场文书
公司宣传语大全
2015/07/13 职场文书
节水宣传标语口号
2015/12/26 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
Python import模块的缓存问题解决方案
2021/06/02 Python
nginx日志格式分析和修改
2022/04/28 Servers
Hive日期格式转换方法总结
2022/06/25 数据库