利用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之list和str比较
Sep 20 Python
Python通过poll实现异步IO的方法
Jun 04 Python
Python开发之快速搭建自动回复微信公众号功能
Apr 22 Python
Python中__init__.py文件的作用详解
Sep 18 Python
python+flask实现API的方法
Nov 21 Python
python实现中文文本分句的例子
Jul 15 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
Aug 05 Python
pytorch 把图片数据转化成tensor的操作
Mar 04 Python
Pytorch 统计模型参数量的操作 param.numel()
May 13 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 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
需要注意的几个PHP漏洞小结
2012/02/05 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
JS实现多功能计算器
2020/10/28 Javascript
Python 开发Activex组件方法
2009/11/08 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
Python基于内置函数type创建新类型
2020/10/22 Python
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
药品促销活动方案
2014/02/14 职场文书
护士岗位职责
2014/02/16 职场文书
小学班主任寄语大全
2014/04/04 职场文书
产品委托授权书范本
2014/09/16 职场文书
村主任当选感言
2015/08/01 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python