Linux(Ubuntu 22.04)安裝PyQt6并在vscode中配置pyqt integration插件使用Designe
準(zhǔn)備學(xué)習(xí)PyQt6,但家里舊筆記本運行Window 10越來越卡了,于是一怒之下?lián)Q成了Ubuntu系統(tǒng)。在安裝PyQt6時發(fā)現(xiàn)Linux系統(tǒng)下的教程太貧乏,尤其是配置designer的方法全是Window系統(tǒng)的,經(jīng)過一晚上的折騰,終于研究明白怎么安裝配置了!
演示用的是剛安裝的Ubuntu虛擬機(jī),已經(jīng)安裝好的機(jī)器沒有必要不要輕易改動。尤其是物理機(jī),配置好要供起來!


一、安裝PyQt6及pyqt6-tools
step 0:檢查pip是否正常
使用以下命令查看是否安裝了pip(注意V要大寫)。一般來說都會有(這一臺虛擬機(jī)就沒有,各種問題全遇到了)

如果不幸是上面的界面,按以下方法:
step 1:先嘗試直接安裝
這一步可以省略快進(jìn)到step 2,因為執(zhí)行的是當(dāng)前目錄的get-pip.py文件。但是各種教程上都有這一步

提示沒有g(shù)et-pip.py文件
step 2:如果提示沒有g(shù)et-pip.py文件,可以通過curl進(jìn)行下載,執(zhí)行以下三行命令:

安裝完畢后輸入pip -V命令進(jìn)行確認(rèn)

step 3:pip換源。通過-i參數(shù)使用臨時源會報錯,提示該源不被信任,此處僅記錄永久換源。(物理機(jī)安裝的時候清華源有點慢,于是使用了阿里源)
在用戶目錄下創(chuàng)建“.pip”文件夾(前面有個點?。。?/span>)
將源信息寫入到pip.conf文件中(第三行等號后的內(nèi)容要與url中域名一致,使用其他源時記得換成相應(yīng)的域名):
如果不會用vi、vim等工具,或是工具無法正常使用,最后一行可以不執(zhí)行,通過可視化工具進(jìn)行,如下:進(jìn)入用戶主目錄,即“home/用戶名”文件夾,點開“顯示隱藏文件”,進(jìn)入“.pip”文件夾。

右鍵點擊選擇“用文本編輯器打開”,添加源即可。

step 4:安裝pyqt6與pyqt6-tools(designer包含在pyqt6-tools中)
輸入以下命令進(jìn)行安裝,只要提示成功即可,中間會因為版本問題有些ERROR,問題不大,有強(qiáng)迫癥可以通過“==版本號”安裝推薦的版本。
安裝命令建議加上sudo,我在安裝時沒有加sudo,安裝后“pyqt6-tools”命令顯示不存在,可能是這個原因,解決方法看最后文章第三章step 3(下圖的黃字其實已經(jīng)說明問題了)。出現(xiàn)Successfully installed即可。

至此,pyqt6開發(fā)所需模塊已安裝完畢,可跳至第三部分配置vscode插件。

二、爬坑過程(不重要,主要講思考過程和原理)
研究四五個小時終于研究明白了(純純Linux小白)。
在PyQt5中,Linux查找“designer”可執(zhí)行文件(如果通過apt安裝pyqt5tools-dev和pyqt5tools-dev-tools)、Windows找“designer.exe”即可。而在PyQt6安裝之后,試遍了所有designer文件、找遍了所有可能的目錄,都不能成功打開圖形化界面。在官方演示中(網(wǎng)頁鏈接找不到了)給出的用法是:
在物理機(jī)上可行(可能是安裝時用了sudo),于是想到可能換了啟動方式,于是在網(wǎng)上搜到可以用whereis命令找到位置:
可以看到,designer是其中的一個參數(shù)。

終于找到了目標(biāo)!并且看起來是個Python的文件,用文本編輯打開看看里面內(nèi)容。

里面就是幾行Python代碼。

以下是錯誤嘗試,正確請直接看文章第三部分。覺得挺有趣的就寫出來了。
錯誤嘗試1:
嘗試將文件添加到pyqt integration插件的Qtdesigner:Path中:

右鍵PYQT:New Form,意料之外地彈出了錯誤信息:

經(jīng)過謹(jǐn)慎的思考,我覺得應(yīng)該是插件將“pyqt6-tools designer”整個當(dāng)作文件路徑進(jìn)行打開,也就是說無法設(shè)置參數(shù)。
錯誤嘗試2:
經(jīng)過短暫的思考,我認(rèn)為,想要能打開界面,這段程序中必定要有designer的指向,那么啟動時這一長串內(nèi)容可能包含了啟動路徑。

依據(jù)官方的介紹,PYQTDESIGNERPATH就是要找的路徑,但它是空的。隨即想到對代碼進(jìn)行調(diào)試。經(jīng)過一個小時的Debug,決定關(guān)機(jī)睡覺~。(太菜了)
躺在床上翻來覆去睡不著,突然靈光一閃:“designer”是作為參數(shù)傳進(jìn)來的,那么直接修改參數(shù)就行了,不用管內(nèi)部是怎么實現(xiàn)的。
成功嘗試,解決插件“PYQT:New Form”功能:
于是對文件內(nèi)容進(jìn)行了修改,好在Python不需要逆向,直接改源碼。復(fù)制pyqt6-tools,命名為designer,在import sys下添加sys.argv.append('designer')。sys.argv是個列表,存儲了啟動時的參數(shù)。

注意修改位置
控制臺輸入“designer”成功啟動!將文件路徑配置到插件里,New Form也可成功執(zhí)行,終于看到了曙光。
繼續(xù)嘗試,解決插件“PYQT:Edit In Designer”功能:
仔細(xì)研究pyqt integration插件可配置項目,有且只有Qtdesigner:Path這一項和designer有關(guān),猜測要被在Designer中編輯的文件也是作為參數(shù)傳給pyqt6-tools中。
(haha.ui隨手打上去的,沒有實際創(chuàng)建)

猜想正確!剩下就是繼續(xù)修改源碼。
sys.argv[0]是python文件名,‘designer’固定在第二,于是將源碼修改為:
將append改為insert,并指定位置為1

插件啟動,完美運行。下面開始技術(shù)總結(jié)。
三、vscode 插件配置
這部分是重點?。?!
這部分是重點?。。?/span>
這部分是重點?。?!
用習(xí)慣了“pyqt interation”插件,折騰了這么久全是因為它。插件安裝就不說了,直接系統(tǒng)總結(jié)。
step 0:安裝pyqt6及pyqt6-tools,第一部分已作介紹,不再贅述。
step 1:尋找“pyqt6-tools”文件



step 2:修改執(zhí)行文件
進(jìn)入查找出的文件目錄,建議先復(fù)制一份,保留原文件。修改復(fù)制出的文件名為“designer”(名字無所謂,記住就行)。

注意:/.local/文件是隱藏文件夾,用gui界面需要開啟“顯示隱藏文件”

使用命令行比較方便:
用文本編輯器修改designer文件內(nèi)容,插入“sys.argv.insert(1, 'designer')”

step 3:為pyuic6建立軟鏈接(解決“pyqt6-tools”命令找不到的問題)
“pyqt6-tools”無法執(zhí)行是因為在“/usr/bin/”中沒有添加軟鏈接,當(dāng)然為designer和pyqt6-tools建立軟鏈接在本文中是不需要的,最主要的是需要用到“pyuic6命令”。如果該命令無法執(zhí)行,那么編譯ui文件用到的“pyuic6”命令很可能也無法執(zhí)行。
在命令行任意位置輸入“pyuic6”,如果顯示未找到命令,按以下步驟執(zhí)行。
通過step 1的方法二獲取到pyqt6-tools的地址,控制臺中選中后按Ctrl+Shift+C復(fù)制,粘貼到以下命令中:
step 4:vscode設(shè)置
通過“文件-->首選項-->設(shè)置”,打開設(shè)置頁面,搜索“pyqt”即可顯示出安裝的“pyqt integration”插件。


至此,全部設(shè)置結(jié)束~

(沒睡幾個小時,難免有漏洞,還望大家指正)