利用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 调用DLL操作抄表机
Jan 12 Python
python中将阿拉伯数字转换成中文的实现代码
May 19 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
Anaconda下安装mysql-python的包实例
Jun 11 Python
Python控制Firefox方法总结
Jun 03 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
Jul 02 Python
python实现生成Word、docx文件的方法分析
Aug 30 Python
python-web根据元素属性进行定位的方法
Dec 13 Python
pytorch加载自定义网络权重的实现
Jan 07 Python
python 三种方法提取pdf中的图片
Feb 07 Python
Django程序的优化技巧
Apr 29 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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
PHP连接SQLServer2005 的问题解决方法
2010/07/19 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
python 异或加密字符串的实例
2018/10/14 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python操作文件的参数整理
2019/06/11 Python
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
国际领先的在线时尚服装和配饰店:DressLily
2019/03/03 全球购物
淘宝网店营销策划书
2014/01/11 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
升职自荐信范文
2015/03/27 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
选购到合适的激光打印机
2022/04/21 数码科技