前阵子在用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;

}

最后效果如图:

写在最后的话,我想谈谈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();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: 利用aardio给python编写图形界面

本文地址: http://www.cppcns.com/jiaoben/python/200678.html

python打代码运行图形_利用aardio给python编写图形界面相关推荐

  1. python生成exe运行慢_利用pyinstaller生成exe文件碰到的一些问题及解决方法

    在"开源图像标注工具labelme的安装使用及汉化"这篇博客中,使用pyinstaller将labelme项目的入口python文件main.py打包,生成了main.exe文件, ...

  2. python手机代码识别数字_利用python构建神经网络识别手写数字(附源代码)

    一.运行环境配置 本次实验的运行环境win10(bit64),采用python环境为3.7.6,安装Python环境推荐使用Anaconda.Anaconda是一个免费开源的Python和R语言的发行 ...

  3. python如何实现找图_利用OpenCV和Python实现查找图片差异

    使用OpenCV和Python查找图片差异 flyfish 方法1 均方误差的算法(Mean Squared Error , MSE) 下面的一些表达与<TensorFlow - 协方差矩阵&g ...

  4. python和arduino串口通信_利用串行通信实现python与arduino的同步

    我有一个需要:使用arduino将伺服电机移动到某个位置并在该位置停止 让一个由python控制的相机在那个位置获取图像 当图像被采集到时,伺服机构应该移动到一个对称的位置 这个序列重复N次 所以我尝 ...

  5. python画图代码100行_用100行Python代码告诉你国庆那些景点爆满!

    阅读本文大约需要 7 分钟 本文转载自zone7 概述 前言 思考 统计结果 爬虫技术分析 爬虫代码实现 爬虫分析实现 后记 前言 举国欢庆的国庆节马上就要到来了,你想好去哪里看人山人海了吗?还是窝在 ...

  6. python写代码没思路_一种用python实现的自动重写文章标题的思路与代码实现

    好几周没更新了,今天来给大家分享一个标题重写的小思路以及代码实现. 相信大家可能都用过5118的自动文章标题的功能,就是给一篇内容,然后直接帮你写个标题.这个功能我是去年的时候一个学员给我看的,目前是 ...

  7. python用什么运行环境_使用SAE部署Python运行环境的教程

    因为 GAE 在国内访问不便,所以平时有一些小应用,我都会放在 SAE 上面, 虽然 SAE 还有很多缺陷,但算是上手比较容易的一个了,最起码文档写的不错. 开发 SAE 上的应用,我一般都用 Fla ...

  8. python的turtle怎么画曲线_利用 turtle库绘制简单图形

    turtle库是python的基础绘图库,这个库被介绍为一个最常用的用来介绍编程知识的方法库,其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图. turtle名称含义为& ...

  9. python做病毒传播的空间数据_利用4行Python代码监测每一行程序的运行时间和空间消耗...

    Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,其具有高可扩展性和高可移植性,具有广泛的标准库,受到开发者的追捧,广泛应用于开发运维(DevOps).数据科学.网站开发和安 ...

最新文章

  1. 干货|全面介绍微软开源可解释机器学习框架InterpretML
  2. HDU 2079-课程时间(生成函数)
  3. 战略配售基金成热点,它或成为入局CDR的最优选择
  4. Python——LOL官方商城皮肤信息爬取(一次练手)
  5. java-前端之js
  6. 内存泄漏的原因及解决办法_探索内存碎片化 - 第288篇
  7. php 获取手机设备的ID,开源 | 通过提取神经元知识实现人脸模型压缩:MobileID可在移动设备上快速运行...
  8. 简单实现 C# TabControl 不显示选项卡标题
  9. 《中国人工智能学会通讯》——11.34 基于近似动态规划的优化控制研究及 在电力系统中的应用...
  10. python实践项目(五)
  11. 使用java连接mysql数据库
  12. Android 微信分享与QQ分享功能
  13. Java前端和后端的区别
  14. 从月薪5千到财富自由:有远见的人都在做这件事情
  15. 视频教程-思科网络工程师CCNP高级路由技术-路由协议
  16. java rxtx串口读写_Win7环境下Java串口数据读写(RXTX)
  17. PowerDesign的基本使用
  18. 英语在线教育机构争战AI风口,为何雷声大雨点小?
  19. 人脸检测MTCNN和人脸识别Facenet(附源码)
  20. 各路由协议的协议号_2020春节档,各路高手巅峰对决?鹿死谁手

热门文章

  1. 求解这个矩阵形式的HTML5线性方程组
  2. C++写的一个聊天室代码,用于XEIM开源即时通讯软件上的
  3. 【飞秋】JS 实现完美include
  4. 【飞秋】OpenExpressApp对建模支持的初步计划
  5. 用VC写Assembly代码(7)--在Visual C++中使用内联汇编
  6. 如果你还在徘徊在程序员的门口,那就赶紧来看看!
  7. 一个顶级程序员要多久才能独自写完Win10代码?
  8. 计算机应用基础1,计算机应用基础1
  9. java白盒测试面试题_面试之JAVA基础Junit了解
  10. 卷积神经网络CNN(8)—— Pix2Pix Application -- Aerialmap Lane Line Detection (Pix2Pix应用:航拍图车道线检测)