利用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 相关文章推荐
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 Python
Python简单连接MongoDB数据库的方法
Mar 15 Python
如何利用python查找电脑文件
Apr 27 Python
Python简单实现网页内容抓取功能示例
Jun 07 Python
python 实现对数据集的归一化的方法(0-1之间)
Jul 17 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
python简易实现任意位数的水仙花实例
Nov 13 Python
pytorch中的transforms模块实例详解
Dec 31 Python
Python脚本破解压缩文件口令实例教程(zipfile)
Jun 14 Python
Python 如何展开嵌套的序列
Aug 01 Python
Python中requests做接口测试的方法
May 30 Python
一文搞懂python异常处理、模块与包
Jun 26 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
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
PHP的FTP学习(一)
2006/10/09 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
Python Selenium参数配置方法解析
2020/01/19 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
小结Python的反射机制
2020/09/28 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
2014年银行年终工作总结
2014/12/19 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python