利用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插入排序算法的实现代码
Nov 21 Python
分享一个常用的Python模拟登陆类
Mar 29 Python
python利用微信公众号实现报警功能
Jun 10 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 Python
python用什么编辑器进行项目开发
Jun 17 Python
使用OpenCV去除面积较小的连通域
Jul 05 Python
python用Configobj模块读取配置文件
Sep 26 Python
Python 解析xml文件的示例
Sep 29 Python
Python实现粒子群算法的示例
Feb 14 Python
python 模块重载的五种方法
Apr 24 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报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
symfony2.4的twig中date用法分析
2016/03/18 PHP
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
使用angular写一个hello world
2015/01/23 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
web.py获取上传文件名的正确方法
2014/08/26 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
python3实现基于用户的协同过滤
2018/05/31 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
python同步两个文件夹下的内容
2019/08/29 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
区域销售经理职责
2013/12/22 职场文书
售后服务承诺书范文
2014/03/26 职场文书
北大自主招生自荐信
2015/03/04 职场文书
工程款申请报告
2015/05/15 职场文书
找规律教学反思
2016/02/23 职场文书
用Python爬取某乎手机APP数据
2021/06/15 Python
图文详解Nginx版本平滑升级方案
2021/09/15 Servers