利用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调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 Python
python导入csv文件出现SyntaxError问题分析
Dec 15 Python
详解Tensorflow数据读取有三种方式(next_batch)
Feb 01 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
Oct 11 Python
Python 正则表达式匹配字符串中的http链接方法
Dec 25 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
Oct 09 Python
简单了解python装饰器原理及使用方法
Dec 18 Python
Python json解析库jsonpath原理及使用示例
Nov 25 Python
浅谈Python xlwings 读取Excel文件的正确姿势
Feb 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
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
php实现mysql数据库操作类分享
2014/02/14 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
详解python和matlab的优势与区别
2019/06/28 Python
python3 线性回归验证方法
2019/07/09 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
python 用struct模块解决黏包问题
2020/11/07 Python
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
文秘专业毕业生就业推荐信
2013/11/08 职场文书
单位未婚证明范本
2014/01/18 职场文书
服务员岗位职责
2014/01/29 职场文书
党风廉政承诺书
2014/03/27 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
2016年安全月活动总结
2016/04/06 职场文书
如何书写授权委托书?
2019/06/25 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python
Python+pyaudio实现音频控制示例详解
2022/07/23 Python