<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          實(shí)用 | 利用 aardio 配合 Python 快速開發(fā)桌面應(yīng)用

          共 3234字,需瀏覽 7分鐘

           ·

          2021-10-18 04:05




          點(diǎn)擊上方 “AirPython”,選擇 “加為星標(biāo)

          第一時(shí)間關(guān)注 Python 原創(chuàng)干貨!


          1. 前言

          大家好,我是安果!

          我們都知道 Python 可以用來開發(fā)桌面應(yīng)用,一旦功能開發(fā)完成,最后打包的可執(zhí)行文件體積大,并且使用 Python 開發(fā)桌面應(yīng)用周期相對(duì)較長(zhǎng)

          假如想快速開發(fā)一款 PC 端的桌面應(yīng)用,推薦使用 Aardio + Python 搭配的方式進(jìn)行開發(fā)

          2. Aardio?介紹

          Aardio 是一款專注于 Windows 桌面端的軟件開發(fā),適用于快速開發(fā)一些自用的 PC?端桌面工具,并且它支持與?Python、JS、Golang 等主流語言進(jìn)行混合編程

          它是一款免費(fèi)的開發(fā)工具,簡(jiǎn)單易學(xué),支持多線程,具有輕巧、快速開發(fā)的特征

          PS:Aardio 僅適用于開發(fā) Windows 桌面應(yīng)用,不具有跨平臺(tái)性

          官網(wǎng)地址:https://www.aardio.com/

          3. 快速入手

          首先,從官網(wǎng)下載軟件后打開,點(diǎn)擊左上角「 新建工程?」,選擇「 空白工程?」模板,輸入項(xiàng)目名稱,點(diǎn)擊創(chuàng)建按鈕,一個(gè)空白工程被創(chuàng)建完成了

          PS:Aardio 軟件內(nèi)置了很多界面模板、程序模板,可以根據(jù)需求自行選擇

          然后,從軟件左下角的「 界面控件?」中選擇 2 個(gè)控件,一個(gè)靜態(tài)文本 Label、一個(gè)按鈕 Button,接著設(shè)置控件的位置、大小、屬性

          控件大小及區(qū)域:選擇控件后,在中間面板區(qū)域,用鼠標(biāo)左鍵拖動(dòng)來設(shè)置控件位置、控件大小

          控件屬性:選中某一個(gè)控件后,在軟件右側(cè)區(qū)域「 屬性?」中設(shè)置控件的屬性

          雙擊按鈕控件會(huì)從「 設(shè)計(jì)視圖?」切換到「 代碼視圖?」,并在代碼中生成按鈕的點(diǎn)擊監(jiān)聽事件

          PS:也可以通過工具欄「 切換?」按鈕或快捷鍵「 Ctrl?+U?」切換兩種視圖

          接著,在按鈕點(diǎn)擊事件中編寫代碼,使用窗體對(duì)象內(nèi)置的方法?msgbox() 彈出一個(gè)提示對(duì)話框

          import?win.ui;
          /*DSG{{*/
          mainForm?=?win.form(text="aardio工程8";right=959;bottom=591)
          mainForm.add(
          button={cls="button";text="彈出?Hello?World";left=320;top=120;right=568;bottom=184;z=2};
          static={cls="static";text="Hello";left=80;top=120;right=240;bottom=168;notify=1;transparent=1;z=1}
          )
          /*}}*/

          //設(shè)置按鈕的點(diǎn)擊事件
          mainForm.button.oncommand?=?function(id,event){
          ????//彈出一個(gè)提示框
          ????mainForm.msgbox("Hello World,Arrdio!")
          }

          mainForm.show();
          return?win.loopMessage();

          最后,點(diǎn)擊工具欄中的「 發(fā)布」按鈕或快捷鍵 F7?生成可執(zhí)行包

          需要注意的是,如果彈出需要更新?Windows Defender 實(shí)時(shí)保護(hù)排除目錄,點(diǎn)擊默認(rèn)按鈕即可

          4. 結(jié)合 Python

          雖然 Aardio 提供了豐富的 API,很多功能可以取代 Python 來直接實(shí)現(xiàn),但是熟練掌握 Python 的小伙伴對(duì)于 Aardio 語法可能不太能適應(yīng)

          假設(shè)我們用 Python 寫了一個(gè)簡(jiǎn)單的爬蟲,使用 BeautifulSoup 爬取網(wǎng)頁標(biāo)題

          from?urllib.request?import?urlopen
          from?urllib.error?import?HTTPError
          from?bs4?import?BeautifulSoup

          def?getTitle(url):
          ????"""爬蟲獲取網(wǎng)頁標(biāo)題"""
          ????try:
          ????????html?=?urlopen(url)
          ????except?HTTPError?as?e:
          ????????return?None

          ????try:
          ????????bsObj?=?BeautifulSoup(html.read(),?"html.parser")
          ????????title?=?bsObj.head.title.string
          ????except?AttributeError?as?e:
          ????????return?None
          ????return?title

          下面我們?cè)?Aardio 編寫具體的業(yè)務(wù)邏輯

          首先,在?Aardio 中添加 2 個(gè)文本框和一個(gè)觸發(fā)按鈕

          接著,為按鈕設(shè)置點(diǎn)擊事件調(diào)用 Python 腳本

          在 Aardio 中調(diào)用 Python 包含 4?個(gè)步驟

          • 放置 Python 腳本到項(xiàng)目資源文件目錄下,即:res 文件夾下

          • 導(dǎo)入 py3 模塊,使用 string 中的 load() 函數(shù)加載腳本文件

          • 使用 py3 中的 exec() 函數(shù)預(yù)執(zhí)行腳本

          • 最后,使用?py3.main.函數(shù)名的格式來調(diào)用具體的函數(shù)

          import?py3;

          ...
          //添加調(diào)用函數(shù)的路徑,string指pycode為字符類型
          pyCode?=?string.load("\res\callpy_pro.py");

          //執(zhí)行pycode
          py3.exec(pyCode);

          mainForm.btn.oncommand?=?function(id,event){

          ????//調(diào)用函數(shù),在main中調(diào)用函數(shù)getTitle()
          ????var?result?=?py3.main.getTitle(content);

          ????mainForm.result.text?=?result;

          ????//提示彈框
          ????mainForm.msgbox(result);
          }

          mainForm.show();
          return?win.loopMessage();

          如果直接運(yùn)行程序會(huì)報(bào)錯(cuò)缺少依賴的錯(cuò)誤,原因是 Python 腳本中引用了 BS4 的依賴

          這時(shí),我們需要先執(zhí)行發(fā)布操作生成可執(zhí)行文件及 py3 的文件夾

          注意:py3 文件夾在安裝 py3 依賴的時(shí)候自動(dòng)生成

          最后,將 BS4 的依賴目錄拷貝到「?/dist/lib/py3/.res/?目錄下

          比如

          #?bs4?依賴目錄
          C:\Users\xingag\AppData\Local\Programs\Python\Python37\Lib\site-packages\bs4

          #?bs4放置到的目標(biāo)文件夾
          C:\Users\xingag\Desktop\aardio\software\project\callpy\dist\lib\py3\.res\

          運(yùn)行項(xiàng)目,在輸入框中輸入一個(gè)網(wǎng)址,點(diǎn)擊按鈕,會(huì)將爬取的結(jié)果展示到結(jié)果輸入框,并且彈出一個(gè)提示框

          PS:由于項(xiàng)目涉及到 Python 外部依賴,分享 EXE 可執(zhí)行文件時(shí),需要將 lib 文件夾一同壓縮打包出去

          5. 最后

          本篇文章介紹了 Aardio?的基本用法及調(diào)用?Python 腳本的具體流程

          實(shí)際上,Aardio 的功能非常強(qiáng)大,它在文件操作、操作系統(tǒng)、音視頻、數(shù)據(jù)庫、網(wǎng)絡(luò)應(yīng)用、高級(jí)應(yīng)用控件、自動(dòng)化等都有對(duì)應(yīng)的 API,大家可以自行拓展

          如果你覺得文章還不錯(cuò),請(qǐng)大家?點(diǎn)贊、分享、留言?下,因?yàn)檫@將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力!


          推薦閱讀
          Postman 如何調(diào)試加密接口?

          5 分鐘,使用內(nèi)網(wǎng)穿透快速實(shí)現(xiàn)遠(yuǎn)程桌面

          聊聊 Jmeter 如何并發(fā)執(zhí)行 Python 腳本

          聊聊 PC 端自動(dòng)化最佳方案 - Pywinauto

          聊聊 PC 端自動(dòng)化最佳方案 - WinAppDriver


          END



          ??分享、點(diǎn)贊、在看,給個(gè)三連擊唄!
          瀏覽 65
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本丰满少妇黄大片在线观看 | 亚洲宗合在线视频 | 日韩无码成人电影 | 久久夜精品视频 | 国产黄色电影一级片 |