利用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自动连接ssh的方法
Mar 07 Python
python调用fortran模块
Apr 08 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
May 25 Python
Python 基础教程之包和类的用法
Feb 23 Python
python查看模块安装位置的方法
Oct 16 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
python挖矿算力测试程序详解
Jul 03 Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
基于python实现学生信息管理系统
Nov 22 Python
python爬虫容易学吗
Jun 02 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
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
JS中位置与大小的获取方法
2016/11/22 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
SVG描边动画
2017/02/23 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
js实现动态添加上传文件页面
2018/10/22 Javascript
如何利用Fabric自动化你的任务
2016/10/20 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
采购主管的岗位职责
2013/12/17 职场文书
优秀老师事迹材料
2014/02/05 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
公司保密管理制度
2015/08/04 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL
Golang Web 框架Iris安装部署
2022/08/14 Python