<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>

          PyQt5開發(fā)實(shí)踐(一、準(zhǔn)備篇)

          共 2299字,需瀏覽 5分鐘

           ·

          2021-05-09 20:33

          前言

          近一年來我開發(fā)了不少PyQt小項(xiàng)目,因?yàn)橹皼]用過使用C++語言的Qt,所以可以算是從零基礎(chǔ)開始邊學(xué)邊做的,這個過程中再一次體會到國內(nèi)技術(shù)社區(qū)的匱乏…… 國內(nèi)關(guān)于PyQt的資料說少不少,說多也不多,主要是比較零散,也沒什么比較好用的系統(tǒng)的學(xué)習(xí)資料…  所以這個PyQt,全靠看文檔和國外社區(qū),還有一個最重要的:自己摸索……

          開發(fā)環(huán)境搭建

          本文的開發(fā)環(huán)境搭建一部分是從書里學(xué)來的,一部分是實(shí)踐中總結(jié)的,總之在目前沒有一種比較好用的PyQt集成開發(fā)工具的情況下,達(dá)到暫時(shí)的比較高效的開發(fā)模式。

          目前我用的PyQt開發(fā)方式沿用傳統(tǒng)的MVC架構(gòu),將界面布局和邏輯實(shí)現(xiàn)分開~

          具體:

          • 用QtDesigner設(shè)計(jì)好界面,保存為*.ui文件,然后使用PyQt工具中的pyuic5將ui文件轉(zhuǎn)換為py文件,這個就是view
          • 在controller包新建對應(yīng)的py文件,用來實(shí)現(xiàn)界面中的相應(yīng)邏輯

          項(xiàng)目結(jié)構(gòu)參考:

          使用QtDesigner

          這個QtDesigner很簡陋,別說跟VS比,就是跟Android Studio或者是IDEA里的Swing界面設(shè)計(jì)工具比起來,都算是弟弟,大概相當(dāng)于98年的VB6.0六七成水平吧……

          不過也聊勝于無,至少能設(shè)計(jì)簡單的界面,就可以了。

          由于Flutter、Android App寫多了,我很習(xí)慣用各種線性布局,Qt在布局方面也不賴,有Hlayout和Vlayout可以用,在QtDesigner里使用也很方便:創(chuàng)建一個Main window,然后放幾個控件上去,右鍵設(shè)置布局就好了,然后就可以盡情使用HLayout或者VLayout、GridLayout各類組件來做布局,如圖:

          安裝PyQt工具

          為了能使用前文提到的諸如QtDesigner、pyuic5工具,需要先安裝。

          pip install pyqt5
          pip install pyqt5-tools

          安裝完之后就可以在Python安裝目錄下的Lib/site-packages下找到PyQt5pyqt5-tools文件夾,我們要的QtDesigner、pyuic5等工具就在pyqt5-tools文件夾下。

          在PyCharm中配置外部工具

          為了讓PyCharm可以更方便的做PyQt開發(fā),還得配置幾個外部工具,配置完之后進(jìn)行一些快捷操作:比如右鍵ui文件可以直接使用QtDesigner打開,也可以使用將UI文件轉(zhuǎn)換為py文件,如圖:

          具體配置方法如下:

          首先,F(xiàn)ile->Settings,打開PyCharm的設(shè)置,選擇到External Tools界面,如圖

          這里選擇加號按鈕打開添加頁面,我們先把QtDesigner添加進(jìn)去,如圖

          接著添加pyuic5工具,這個工具的命令參數(shù)格式是這樣的:

          {pyuic5_path} -o {target_path} {file_path}

          所以配置方法是這樣:

          參數(shù)部分我再復(fù)制一下:

          -o $FileDir$/$FileNameWithoutExtension$.py $FilePath$

          推薦一個小開源項(xiàng)目

          這是我之前寫的一個簡單的視頻合并工具,下面是簡單項(xiàng)目介紹

          想合并視頻,但是卻找不到比較好用的工具,很多都要收費(fèi),我想著「這破功能還得收費(fèi)?」,于是決定自己搞一個,一開始用Python做了一個,效果還不錯,完美完成了我的視頻合并任務(wù),不過沒有圖形界面,想分享給朋友一起用也沒辦法,于是用Qt寫了個圖形界面套上去就有了本項(xiàng)目

          地址:https://github.com/Deali-Axy/VideoMerge

          推薦一本書

          雖說國內(nèi)系統(tǒng)的學(xué)習(xí)資料很少,不過也是讓我找到了這本

          忘記在哪找的PDF了,里面是沒有目錄的,查閱起來很費(fèi)勁,我花時(shí)間整本書過了一遍,手動標(biāo)注了目錄,如圖

          也算是對整本書的內(nèi)容了解得七七八八吧,前面對搭建PyQt開發(fā)環(huán)境什么的,還是有些幫助的,后面各種組件的介紹就沒那么詳細(xì)了,有些有用的東西書里都沒有涉及到,還是得依靠Google。so,這本書只能說是矮子里挑高個,差強(qiáng)人意吧~

          歡迎交流

          程序設(shè)計(jì)實(shí)驗(yàn)室專注于互聯(lián)網(wǎng)熱門新技術(shù)探索與團(tuán)隊(duì)敏捷開發(fā)實(shí)踐,在公眾號「程序設(shè)計(jì)實(shí)驗(yàn)室」后臺回復(fù) linux、flutter、c#、netcore、android、kotlin、java、python 等可獲取相關(guān)技術(shù)文章和資料,同時(shí)有任何問題都可以在公眾號后臺留言~

          • 博客園:https://www.cnblogs.com/deali/
          • 打代碼直播間:https://live.bilibili.com/11883038
          • 知乎:https://www.zhihu.com/people/dealiaxy





          推薦閱讀




          使用Kotlin搭配Springboot開發(fā)RESTFul接口(二)自定義配置、跨域、分頁
          花一周時(shí)間整理的六千字長文!深入思考技術(shù)本質(zhì),跨平臺開發(fā)框架AspNetCore的簡單實(shí)踐雜談
          我的2020回顧——技術(shù)篇
          聊聊Django應(yīng)用的部署和性能的那些事兒
          數(shù)據(jù)分析必備技能!3分鐘教會你如何在PyQt中畫好看的圖表
          Flutter移動應(yīng)用快速構(gòu)建實(shí)踐——狀態(tài)管理、國際化、數(shù)據(jù)持久化、性能優(yōu)化
          無需折騰的Linux發(fā)行版:Manjaro體驗(yàn)與配置筆記,開箱即用 真香!



          瀏覽 108
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  黄色片免费视频网站 | 久久国产精品色综合 | 婷婷五月天婷婷五月天婷婷五月天色 | 亚洲中文无码视频 | 亚洲成人网址在线观看 |