當(dāng)運(yùn)用桌面應(yīng)用程序時(shí),有沒有有一瞬間,想學(xué)習(xí)下桌面應(yīng)用程序開發(fā)設(shè)計(jì)?接下來(lái)本文關(guān)鍵為大家介紹了有關(guān)Python使用pywebview開發(fā)設(shè)計(jì)桌面應(yīng)用的資料,必須的小伙伴可以借鑒一下
序言
平時(shí)用過Eel做出來(lái)的桌面應(yīng)用感覺就已經(jīng)夠?qū)帕?不過因?yàn)镋el是啟用Chrome,常常出現(xiàn)一些小事情,例如窗口大小設(shè)定后有時(shí)不起作用,右鍵新建菜單沒法禁止使用(一眼就能看出來(lái)就是一個(gè)web).并且試了用pyinstaller裝包后文檔很大,昨晚游逛就發(fā)現(xiàn)了這個(gè)比Eel更強(qiáng)解決方案pywebview,更輕巧,可自定設(shè)置大量.因?yàn)閜ywebview是可以直接啟用系統(tǒng)軟件本身瀏覽器(Win10啟用Edge,Win7啟用IE),因而非常適合裝包公布.官方網(wǎng)站:pywebview.flowrl.com/
非常簡(jiǎn)單運(yùn)用入門
先裝好車輪子
pipinstallpywebview
完成一種內(nèi)嵌式百度主頁(yè)的winform程序流程,固定不動(dòng)窗口大小,嚴(yán)禁挑選文本
""" main.py """ importwebview window=webview.create_window( title='搜一下,都是廣告宣傳', url='http://www.baidu.com', width=850, height=600, resizable=False,#固定不動(dòng)窗口大小 text_select=False,#嚴(yán)禁挑選文字部分 confirm_close=True#關(guān)掉時(shí)提醒 ) webview.start()
不管是打開速度,或是屏幕清晰度都比Eel好許多.撤出提醒的對(duì)話框默認(rèn)設(shè)置可以看到英語(yǔ),還可以本土化一下下,界定個(gè)詞典發(fā)送給webview.start()當(dāng)啟動(dòng)參數(shù)就可以了.
chinese={ 'global.quitConfirmation':u'確定關(guān)閉?', } webview.start(localization=chinese)
高級(jí)運(yùn)用
在HTML前端界面中啟用Python里的函數(shù)公式
Http是由Flask所提供的,直接把Flask實(shí)例化對(duì)象app發(fā)送給url主要參數(shù)就可以了
importwebview fromflaskimportFlask,render_template #創(chuàng)建對(duì)象flask目標(biāo) app=Flask(__name__) #界定路由器3D渲染模版 app.route('/') defindex(): returnrender_template('/index.html') #配備pywebview關(guān)掉提醒的英文翻譯 chinese={ 'global.quitConfirmation':u'確定關(guān)閉?', } #發(fā)送給前面的api目標(biāo),界定了這個(gè)能通過js調(diào)用撤出現(xiàn)階段運(yùn)用的函數(shù)公式 classApi: def__init__(self)->None: self._window=None defset_window(self,window): self._window=window defquit(self): self._window.destroy() if__name__=='__main__': #創(chuàng)建對(duì)象Api類 api=Api() window=webview.create_window( title='我是文章標(biāo)題', url=app, fullscreen=True,#以全屏模式運(yùn)行 #width=760,#自定窗口大小 #height=390, #resizable=False,#固定不動(dòng)窗口大小 text_select=False,#嚴(yán)禁挑選文字部分 confirm_close=True,#關(guān)掉時(shí)提醒 js_api=api#將上面創(chuàng)建對(duì)象后的Api目標(biāo)發(fā)送給前端js啟用 ) #--劃重點(diǎn)--務(wù)必記得需要將上面創(chuàng)建的window目標(biāo)再通過函數(shù)公式發(fā)送給創(chuàng)建對(duì)象后的api目標(biāo) api.set_window(window) #啟動(dòng)程序 webview.start(localization=chinese)
前面寫一個(gè)id為exit的button,jquery給它綁定個(gè)點(diǎn)擊的事件來(lái)調(diào)用api函數(shù)公式方法,注意這里的pywebview.api是在pywebview的運(yùn)用啟動(dòng)后自動(dòng)注入到現(xiàn)階段瀏覽器窗口里的全局對(duì)象,python中所寫的函數(shù)公式就綁定在它接下來(lái).
$("#exit").click(function(){ pywebview.api.quit(); })
裝包成單個(gè)EXE文檔
以前用pyinstaller手工制作裝包太費(fèi)勁了,發(fā)覺個(gè)圖形界面配置pyinstaller開展裝包的一種手段:auto-py-to-exe,用pip裝一下下,之后就可以自動(dòng)運(yùn)行了
pipinstallauto-py-to-exe #運(yùn)行專用工具 auto-py-to-exe
這專用工具竟然是用eel所寫的,嘿嘿...
建議使用單文件目錄形式進(jìn)行裝包,單文件得話可能對(duì)編程代碼所涉及到的到途徑提及的地區(qū)出問題,坑有些大,不建議使用.
需注意需在附件格式一塊兒設(shè)定里將flask涉及的模版,靜態(tài)文件,還有其他的例如sqlite數(shù)數(shù)據(jù)庫(kù)文檔都加入進(jìn)去了
判定網(wǎng)頁(yè)頁(yè)面中pywebview.api目標(biāo)是不是載入取得成功
現(xiàn)在又寫了個(gè)小應(yīng)用,啟用的當(dāng)?shù)氐膆tml文件,希望在網(wǎng)頁(yè)頁(yè)面開啟時(shí)直接調(diào)用pywebview.api中關(guān)系的python函數(shù),但由于頁(yè)面上立即用js瀏覽pywebview.api目標(biāo)的話就會(huì)出錯(cuò)找不到男朋友,又翻了一下官方文檔,發(fā)覺應(yīng)該給window對(duì)象添加個(gè)事情監(jiān)視pywebviewready,實(shí)例編碼:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129082.html
當(dāng)運(yùn)用桌面應(yīng)用程序時(shí),有沒有有一瞬間,想學(xué)習(xí)下桌面應(yīng)用程序開發(fā)設(shè)計(jì)?接下來(lái)本文關(guān)鍵為大家介紹了有關(guān)Python使用pywebview開發(fā)設(shè)計(jì)桌面應(yīng)用的資料,必須的小伙伴可以借鑒一下 序言 平時(shí)用過Eel做出來(lái)的桌面應(yīng)用感覺就已經(jīng)夠?qū)帕?不過因?yàn)镋el是啟用Chrome,常常出現(xiàn)一些小毛病,例如窗口大小設(shè)定后有的時(shí)候不起作用,右鍵新建菜單沒法禁止使用(一眼就能看出來(lái)是一個(gè)web).并且試了用...
摘要:首先很遺憾的一點(diǎn)是,雖然是最好的語(yǔ)言,但是它不是最流行的語(yǔ)言。屬于配置比較高的硬件,而低配的呢三星設(shè)計(jì)了引擎,它能夠運(yùn)行在小于內(nèi)存上,且全部代碼能夠存儲(chǔ)在不足的只讀存儲(chǔ)上。你覺得還能做什么 首先很遺憾的一點(diǎn)是,PHP雖然是最好的語(yǔ)言,但是它不是最流行的語(yǔ)言。showImg(https://segmentfault.com/img/bVvqTs);同時(shí)對(duì)不起的還有剛剛在4月TIOBE編程...
摘要:首先很遺憾的一點(diǎn)是,雖然是最好的語(yǔ)言,但是它不是最流行的語(yǔ)言。屬于配置比較高的硬件,而低配的呢三星設(shè)計(jì)了引擎,它能夠運(yùn)行在小于內(nèi)存上,且全部代碼能夠存儲(chǔ)在不足的只讀存儲(chǔ)上。你覺得還能做什么 首先很遺憾的一點(diǎn)是,PHP雖然是最好的語(yǔ)言,但是它不是最流行的語(yǔ)言。showImg(https://segmentfault.com/img/bVvqTs);同時(shí)對(duì)不起的還有剛剛在4月TIOBE編程...
閱讀 928·2023-01-14 11:38
閱讀 902·2023-01-14 11:04
閱讀 759·2023-01-14 10:48
閱讀 2065·2023-01-14 10:34
閱讀 968·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 591·2023-01-14 10:02