利用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 除法小技巧
Sep 06 Python
Python中实现远程调用(RPC、RMI)简单例子
Apr 28 Python
Python选择排序、冒泡排序、合并排序代码实例
Apr 10 Python
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
Apr 11 Python
python列表的增删改查实例代码
Jan 30 Python
python 实现UTC时间加减的方法
Dec 31 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
Python计算公交发车时间的完整代码
Feb 12 Python
Python脚本导出为exe程序的方法
Mar 25 Python
没编程基础可以学python吗
Jun 17 Python
Python DES加密实现原理及实例解析
Jul 17 Python
Python实现数字的格式化输出
Aug 01 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
input file获得文件根目录简单实现
2013/04/26 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
用javascript实现自定义标签
2007/05/08 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
鼠标拖拽移动子窗体的JS实现
2014/02/25 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
vue实现购物车案例
2020/05/30 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
pytyon 带有重复的全排列
2013/08/13 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
高三自我鉴定怎么写
2013/10/19 职场文书
教师旷工检讨书
2014/01/18 职场文书
网络技术专业求职信
2014/02/18 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
院系推荐意见
2015/06/05 职场文书
2016母亲节感恩话语
2015/12/09 职场文书