利用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使用Socket(Https)Post登录百度的实现代码
May 18 Python
python读取各种文件数据方法解析
Dec 29 Python
pycharm修改界面主题颜色的方法
Jan 17 Python
Python之列表实现栈的工作功能
Jan 28 Python
利用python实现周期财务统计可视化
Aug 25 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
Python实现查找数据库最接近的数据
Jun 08 Python
python rsa-oaep加密的示例代码
Sep 23 Python
Python获取指定网段正在使用的IP
Dec 14 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 Python
pycharm进入时每次都是insert模式的解决方式
Feb 05 Python
python随机打印成绩排名表
Jun 23 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+MySQL5.0中文乱码解决方法
2006/11/20 PHP
php array的学习笔记
2012/05/16 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
Vue性能优化的方法
2020/07/30 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
Python reversed函数及使用方法解析
2020/03/17 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
空指针到底是什么
2012/08/07 面试题
社区庆中秋节活动方案
2014/02/07 职场文书
2015年组织部工作总结
2015/04/03 职场文书
会议室管理制度范本
2015/08/06 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
Elasticsearch 索引操作和增删改查
2022/04/19 Python