利用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根据距离和时长计算配速示例
Feb 16 Python
python使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
python分析网页上所有超链接的方法
May 08 Python
在Python的while循环中使用else以及循环嵌套的用法
Oct 14 Python
python判断字符串是否是json格式方法分享
Nov 07 Python
Python3实现发送QQ邮件功能(文本)
Dec 15 Python
Python实现删除时保留特定文件夹和文件的示例
Apr 27 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
Jun 25 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
Python实现byte转integer
Jun 03 Python
python神经网络Xception模型
May 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编写文件多服务器同步程序
2016/07/02 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
对Python中的@classmethod用法详解
2018/04/21 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
Python tkinter label 更新方法
2018/10/11 Python
python tkinter界面居中显示的方法
2018/10/11 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
2019/05/13 Python
Python 监测文件是否更新的方法
2019/06/10 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
旅游管理专业学生求职信
2013/09/28 职场文书
安全资料员岗位职责
2013/12/14 职场文书
文明班集体申报材料
2014/05/23 职场文书
医院节能减排方案
2014/06/13 职场文书
作风建设剖析材料
2014/10/06 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
借条如何写
2015/05/26 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
JavaScript实例 ODO List分析
2022/01/22 Javascript