Pycharm+PyQt5+QT Designer設計GUI時的問題一二

胖友們好久不見,經歷這個特殊的時期,你是否也蛻變成了肥嘟嘟的小可愛,哈哈~

漸漸地感覺博客寫不動了,每次有寫的衝動時都覺得內容太low了,不好意思下筆,後來一想,我寫博客的初衷不就是做筆記嘛,記錄這一程的點點滴滴,以謙卑的心態傾聽各位大佬的指導,嗯,應該是這樣的。所以,還請各位不要見笑,這段時期的確處於空洞期,只能說一說個人感覺有意義的小知識點了。

最近稍微搞了一下PyQt,詳情就不介紹了,目的就是做一個小的系統,當前用到的就是Pycharm和PyQt的工具包Qt Designer了。在這一過程中,遇到了一些小的問題,比較淺顯,但真正解決起來可能會花費不少的時間,還是希望能把自己填好的坑分享給大家,願可以幫助遇到同樣問題的你。

1.Qt Designer預覽的界面與Pycharm運行的結果不一致

我們都知道,在Qt Designer設計好界面後可以使用pyuic(目前用到的是pyuic5,因爲使用的PyQt版本爲5.13.0)工具將將Qt Designer生成的“.ui”文件轉換成“.py”文件,這樣便可以使用我們熟悉的python來進行後續的更加深入的研究了。在轉換格式前我們一般都會使用“Ctrl+R”快捷鍵來預覽一下最終的界面,但使用Pycharm運行轉換後的".py"時,結果卻和預覽時的不一致,查了一下,講到這一塊的很少。基本上使用的方法就是在主函數中加入以下代碼:

  QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)

謹記,這行代碼要放到主函數的最開始,即:

從參數來看也不難理解,該行代碼的意思是設置高分辨率屏幕自適應,使設計的界面可以自適應不同分辨率的屏幕,不至於發生佈局紊亂的現象。但可惜的是,這種方法沒有解決我的問題。

我遇到的問題是設置的背景圖片無法正常顯示,原本我以爲是佈局的問題,然後仔細檢查代碼後發現並非如此,在Qt Designer中設置的圖片路徑與轉換後的“.py”文件中的圖片路徑並不一致,這個也算是Qt Designer不嚴謹的一個地方,他不能自動地從“.ui”路徑轉化到“.py”的路徑,由於之前的路徑是自行設置的,僅考慮能滿足Qt Designer的顯示就可以了,沒有考慮到使用Pycharm時的路徑顯示問題,這個需要手動更改路徑,或者一開始便同意設置成一樣的路徑,避免後續的各種問題。

2.從Pycharm打開Qt Designer後便提示“未響應”,然後掛掉

這個問題之前沒有遇到過,第一感覺是機器問題,是不是開機時間長了或者打開的軟件太多了,然後一查發現有個老哥說需要刪掉“C:\Users\Administrator\.designer”文件下的gradients.xml文件,然後我怕誤刪重要文件,便採取了另一個建議“關閉網易有道詞典”,之後就不卡了。。這是什麼原理,難道這倆哥們有啥矛盾嘛。。。

3.PyQt應遵循業務邏輯分離原則

稍微接觸PyQt的朋友應該都比較熟悉這句話,對於面向對象編程也是通用的,我們把界面的代碼和調用界面的代碼分開存儲,這樣一個很大的好處便是當你重新編輯".ui"後不用再添加調用函數代碼,因爲,每次用pyuic5將“.ui”文件轉換成“.py”文件後,後者都不包含主函數代碼,這樣就很惱火,你要不斷地自行添加,一般情況下涉及GUI都要經過多次的調試,如果每次都手動添加主函數代碼就很心累了,而且還要手動導入主函數中所需的模塊。。

關於PyQt要走的路還很長,我們有緣再見吧。


—如果文章對您有一點點幫助,還請打賞一二,您的鼓勵是我前進的不竭動力—

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章