当前位置: 首页 > 后端技术 > Python

Aardio开发桌面应用,这几点必须掌握!

时间:2023-03-26 01:37:58 Python

一、前言大家好,我是安国!在上一篇文章中,我写到可以通过aardio结合Python来开发桌面应用。有小伙伴在后台给我留言,说Aardio的资料太少了,希望能增加一些实用的功能。|结合Python使用aardio快速开发桌面应用本文我们将谈谈Aardio的一些更实用和高级的用法2.网络请求在Aardio中,您可以使用“inet.http”来发送网络请求。我们以最简单的GET请求为例,在这里添加一个按钮,然后给这个按钮添加Click事件,在事件内部发送一个网络请求,最后打印出请求结果importwin.ui;importconsole;importinet。http;...//发起GET请求mainForm.get_btn.oncommand=function(id,event){varhttp=inet.http();//这里把查询参数和URL写在一起varresult,err,errCode=http.get("http://ipaddress/get?username=xag");http.close();if(err){console.log("错误代码:",errCode,"错误信息:",err);}else{console.log(结果);}console.pause()}主窗体。show();returnwin.loopMessage();如果处理的是POST请求,可以使用如下方法:需要指出的是,在创建请求对象http时,可以自定义请求头和请求体参数importwin.ui;导入控制台;importinet.http;...//发起POST请求mainForm.post_btn.oncommand=function(id,event){varhttp=inet.http();//添加请求头http.addHeaders={["Content-Type"]='application/json'}//发起请求//请求体:{a=1,b=2}varresult,err,errCode=http.post("http://ip地址/books",{a=1,b=2});http.close();//打印结果if(err){console.log(err);}else{console.log(result);}console.pause()}3.自定义库通过自定义库,我们可以封装一些常用的逻辑,方便代码分层管理,选择“NewLibrary”输入名称后,会自动在该文件夹下创建一个自定义库,然后,写入自定义库中的业务逻辑PS:为了演示方便,我只写了一个简单的方法,然后直接返回一个字符串//自定义库文件:customlib.aardio//自定义库命名空间customlib{//自定义一个全局方法:custom_funccustom_func=function(){return"xag";}}需要注意的是,为了调用自定义方法方便,我定义为全局方法,这里不引用关键字var最后我们导入库窗体源码中的name,使用“库名.custommethod()”的格式调用//windowBodyfilemain.aardio//1、导入库名customlibimportcustomlib...//直接调用库中定义的方法,打印结果console.log(customlib.custom_func());....4.对于简单的线程也是一样,在aardio中,我们可以在线程中进行一些耗时的操作。操作步骤如下:首先,我们为耗时操作定义一个函数,并将其设置为form对象的成员属性importfonts.fontAwesome;importwin。ui;importconsole;...//线程执行函数mainForm.test_func=function(){importconsole//模拟耗时操作sleep(5000);console.log("test_funcfunctionexecuted")}...然后使用内置的“thread.invoke”函数调用上述函数。需要注意的是,在thread.invoke函数中,第一个参数是一个匿名函数,后面是为匿名函数指定的参数。我们将表单对象和其他参数传递给一个匿名函数,然后在函数内部使用表单对需要调用上面定义的函数...//点击事件mainForm.calc.oncommand=function(id,event){//调用参数有:函数,参数1,参数2...thread.invoke(function(mainForm,url){mainForm.test_func();...//设置控件可点击mainForm.calc.disabledText=null;},mainForm,"http://www.baidu.com")}mainForm.show();//消息循环返回win.loopMessage();5.在线程中执行Python上一节我们直接在主线程中调用了Python文件中定义的函数,但是如果是针对一些耗时的函数,体验不好这里我定义了一个简单的时间Python文件中的消费函数importtimedefexec_operation1():print("Start1")time.sleep(5)print("End1")return"success1"下面我们在窗体中为一个按钮设置点击事件在源代码中。调用该函数的具体步骤如下:首先将Python文件放入res文件夹,然后加载文件并释放GIL锁importwin.ui;importconsoleconsole.open()importpy3;...//加载python文件pyCode=string.load("\res\tp.py");//执行pycodepy3.exec(pyCode);//释放GILpy3.releaseThread();...应该是需要注意的是,这里使用“console.open()”打开调试器,可以查看线程中的异常然后,在form对象上创建一个线程函数,使用下面的方法调用Python文件中的函数//创建线程函数1、调用Python中的一个耗时方法mainForm.pyThread1=function(mainForm){importpy3;importconsole//注意:控制台必须在线程中导入才能使用控制台py3.lock(function(){//调用python文件中的函数varresult=tostring(py3.main.exec_operation1())console.log(result)console.log(type(result))})}...最后,在按钮的点击事件中,调用上面定义的方法即可...mainForm.button.oncommand=function(id,event){//调用上面定义的方法thread.invoke(mainForm.pyThread1,mainForm)}。..6.最后很多小伙伴在后台给我留言,说关于aardio的资料太少了。其实aardio编辑器软件的“起始页”中提供了一些官方资料和编辑器右下角的“示例”,其中列出了桌面开发的常用开发技巧。另外,工具栏提供了界面处理、代码转换、图标制作、库函数文档等实用工具,还有一些小伙伴提到了原生控件丑陋的问题。这个可以用来对Htmlayout进行自定义改造。Aardio结合htmlayout提供了更高的自由度。另外,在工具栏-界面-加配色工具可以美化按钮、输入框、选择框。最后列出一些优秀的学习网站供大家参考和学习提升https://www.aardio.net/https://bbs.aardio.com/https://www.htmlayout.cn/https://github.com/search?q=a...如果你觉得文章还不错,请点赞、分享、留言,因为这将是我继续输出更多优质文章的最强大动力!推荐阅读Postman是如何调试加密接口的?5分钟,使用内网穿透,快速实现远程桌面。说说Jmeter是如何并发执行Python脚本的。谈谈PC端自动化的最佳方案。