利用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中的reduce内建函数使用方法指南
Aug 31 Python
用PyQt进行Python图形界面的程序的开发的入门指引
Apr 14 Python
python 接口_从协议到抽象基类详解
Aug 24 Python
python3大文件解压和基本操作
Dec 15 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
python更改已存在excel文件的方法
May 03 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
简单了解python PEP的一些知识
Jul 13 Python
详解用Python为直方图绘制拟合曲线的两种方法
Aug 21 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 Python
Python如何实现机器人聊天
Sep 10 Python
python反扒机制的5种解决方法
Feb 06 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连接Oracle数据库
2006/10/09 PHP
杏林同学录(一)
2006/10/09 PHP
基于mysql的论坛(4)
2006/10/09 PHP
PHP插入排序实现代码
2013/04/04 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
Ext 今日学习总结
2010/09/19 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
jQuery获取URL请求参数的方法
2015/07/18 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
2018/04/22 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
python实现图片转字符小工具
2019/04/30 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
学习型班组申报材料
2014/05/31 职场文书
民主生活会发言材料
2014/10/20 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
小兵张嘎观后感
2015/06/03 职场文书
消防宣传标语大全
2015/08/03 职场文书
Pandas-DataFrame知识点汇总
2022/03/16 Python