在Python下搭建QT+SIP+PyQt5環境

PyQt是Python界面開發的常用庫,因爲需要寫一個圖像標註的GUI界面,所以用到了這個庫。但是在環境搭建的實際過程中,查閱了大量的資料,嘗試了很多種方法,大都以失敗告終。在此將最後的解決方案記錄下來。

1. 安裝QT

Qt 是一個跨平臺的 C++ 應用程序開發框架,是自由且開放源代碼的軟件

Qt [1] 是一個1991年由Qt Company開發的跨平臺C++圖形用戶界面應用程序開發框架。它既可以開發GUI程序,也可用於開發非GUI程序,比如控制檯工具和服務器。Qt是面向對象的框架,使用特殊的代碼生成擴展(稱爲元對象編譯器(Meta Object Compiler, moc))以及一些宏,Qt很容易擴展,並且允許真正地組件編程。2008年,Qt Company科技被諾基亞公司收購,Qt也因此成爲諾基亞旗下的編程語言工具。2012年,Qt被Digia收購。2014年4月,跨平臺集成開發環境Qt Creator 3.1.0正式發佈,實現了對於iOS的完全支持,新增WinRT、Beautifier等插件,廢棄了無Python接口的GDB調試支持,集成了基於Clang的C/C++代碼模塊,並對Android支持做出了調整,至此實現了全面支持iOS、Android、WP,它提供給應用程序開發者建立藝術級的圖形用戶界面所需的所有功能。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫和 Windows 平臺上的 MFC,OWL,VCL,ATL 是同類型的東西。
——百度百科

安裝 qt 的方式基本上分兩種

1.1 通過 brew 安裝 qt

使用 macOS 的開發人員一定知道brew這個非常好用的包管理工具,基本上只要能在mac上安裝的東西,都可以通過 homebrew 來安裝和管理,並且可以及時對其進行更新和下載。

通過brew安裝的辦法:

brew install qt

優點: 一行代碼搞定,安裝包精簡,同時速度快。

缺點: brew下載下來的包大小隻有100MB左右,解壓後也只有300多兆。而官網的.dmg安裝包有一個G,全套組件安裝下來佔用空間將近13G。所以在後續過程中可能還需要使用brew安裝其他東西。

1.2 通過官網安裝

官網的開源版本下載頁面遲遲打不開,令人十分急躁,並且似乎還要註冊。所以此處推薦大家使用鏡像資源下載。(沒有鏈接,自己找最新版的吧。)

官網安裝基本上就是一路下一步即可了。

缺點: 安裝包太大,並且後續安裝不能使用Homebrew了。因爲通過brew安裝sip或者PyQt的時候會檢查系統有沒有qt,而如果是通過官網安裝的qt,不在brew目錄下面的話,它就會重新執行 brew install qt這樣相當於官網安裝的就沒有用上。

2. 安裝SIP

sip: create python bindings for c and c++ libraries

sip是RiverBank(也就是PyQt的開發商)開發的用於PyQt的Python/C++混合編程解決方案。由於Qt框架的複雜性,PyQt並沒有使用Cython、SWIG的混合編程方案,而是自己單獨做了一套框架。sip包括一個sip工具、SDK和Python Module。

與SWIG類似,使用sip也需要先編寫一個「配置文件」,然後使用sip工具『編譯』爲C++源文件,最後,和Qt庫一起編譯形成適用於Python的PyQt。

與SWIG不同的是,sip 同時以Python Module的形式存在,也就是說,作爲Python Module的PyQt,依賴於作爲Python Module的sip。而對於SWIG,一旦自動生成的C++生成完畢,整個流程就不再依賴SWIG了。

很多教程推薦使用 brew 安裝 sip, 這樣省編譯 blabla 因爲,但實際上我們上面已經交代了, sip 同時以 Python Module 的形式存在,所以,此時可以使用 pip 工具了

pip3 install sip

搞定。

3. 安裝PyQt5

PyQt是python的一個插件庫,通過這個庫我們可以連接qt和python.便捷的使用GUI編程.

pip3 install pyqt5

安裝好了。

4. 配置 PyCharm 開發環境

  1. 先確認我們的 pyqt 模塊是不是安裝好了, 以及python版本。

  2. 配置GUI設計工具

15332767318097.jpg

這裏要求我們在安裝qt的時候,能夠知道其路徑在何處。
Working Directory是系統自動生成的,不需要我們設置。

  1. 設置 ui 文件編譯工具

15332769446963.jpg

Parameters 欄的固定代碼:

-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py

Ps: Working directory 欄也會自動生成路徑,但是有時候生成的不是那個位置,而是qt文件位置或其他,我們需要把它改成我們那樣,這樣相當於一個定位,讓編譯程序在本 project 內部找編譯的源文件。

  1. 安裝好之後的模樣:

image.png

5. 開始使用 PyQt5 編寫第一個 GUI 程序

這部分不再贅述,看下面的參考資料就可以啦。
momoxiaomming的博文:如何在Python下搭建QT+SIP+PyQt5環境

總之基本上步驟是:

  1. 使用 QT_Designer 圖形化界面,拖動的方式設計。 生成.ui文件
  2. 使用 PyGUI 將 .ui 文件編譯成 .py 文件
  3. 編寫腳本 import 前面生成的 .py 文件,再有一通操作即可。

參考資料:
momoxiaomming的博文:如何在Python下搭建QT+SIP+PyQt5環境

Qt安裝後配置環境變量(Mac)

善用Homebrew


本文首發於個人網頁Yao Blog,知乎專欄談技術 不能潦草,CSDN博客:手握靈珠常奮筆,簡書:且自小堯沒誰管

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