在win xp上使用pyqt5

2021-09-11 06:25:29 字數 2388 閱讀 7140

想在win xp上使用pyqt5,但是發現官方並沒有編譯xp版的pyqt5。所以我就自己編譯了乙個,編譯好的乙個版本放在github上:[

編譯好的版本是python2.7+qt5.6.3+pyqt5.11 32bit

編譯步驟記錄如下:

編譯pyqt5,需要pyqt5原始碼、pyqt5-sip,python、qt以及c++編譯器。windows上c++編譯器可以選擇msvc或mingw。

本文選擇下列版本檔案編譯pyqt5

因為python2.7比python3.4支援的庫更多,所以使用python2.7編譯pyqt5。

因為2023年qt5.6.3 msvc版只有msvc 2013,msvc 2015編譯版,所以使用msvc2013。

如果想用python3.4 32bit的pyqt5,也可以根據本文編譯

qt5可以使用msvc編譯器和mingw編譯器,而msvc的編譯器從2015開始就對xp的支援變差,就算通過各種編譯配置命令設定,能xp下執行,但是會很可能發生一些奇奇怪怪的bug。而mingw編譯器沒有這個問題,同乙個版本可以在xp win7 win10各個系統使用,而無需其他配置。

另外,qt5目前有兩個長期支援版本(long term support)qt5.6和qt5.9,qt5.6可以在xp和win7及以上系統開發,而qt5.9只支援win7以上的系統開發和部署。 所以如果想使用qt5的新功能,又想開發出的軟體能在xp系統上執行,可以選擇qt5.6的mingw-32bit版本或者vs2013版本進行開發。

qt從5.7版本開始不再支援winxp系統,即編譯生成的exe檔案無法在winxp系統執行。

qt5.6是長期支援版本long term support,它可以支援winxp-32bit的系統。

參考:請注意,這幾個版本是完全ok的:

vs2015編譯出來的版本是不ok的,在winxp環境下,會出現字型亂碼(含刪除線)的問題。

所以qt選擇5.6.3版本。

需要安裝和qt版本相同的visual studio。所以我使用vs2013。

雖然qt版本比較低,但是仍然可以使用最新版本的pyqt5和pyqt5-sip原始碼。但是我在編譯的時候遇到了下邊的問題,編譯的時候禁止qtnfc就可以了

qaexabvqndefrecord@@@z) 已經在 sipqtnfcqlist0100qndefrecord.obj 中定義

正在建立庫 release\qtnfc.lib 和物件 release\qtnfc.exp

release\qtnfc.dll : fatal error lnk1169: 找到乙個或多個多重定義的符號

安裝python2.7

安裝vs2013

安裝qt5.6.3

解壓pyqt5_gpl-5.11.3.zip到pyqt5_gpl-5.11.3資料夾

解壓sip-4.19.13.zip到sip-4.19.13資料夾

進入vs2013環境

進入sip目錄

編譯sip

編譯:nmake

將編譯後得到的檔案安裝到out目錄下:nmake install

在這個階段我們得到了sip.exe和sip.h,這兩個檔案僅用於編譯pyqt5,pyqt5執行時不需要。

在這個階段我們得到了sip.pyd檔案,這個檔案是pyqt5編譯後執行需要的檔案,將這個檔案複製到python27\lib\sitepackages\pyqt5目錄下就ok了。

進入qt環境

進入vs2013環境

進入pyqt5原始碼目錄

編譯pyqt5

編譯:nmake(時間比較長)

安裝到python:nmake install

pyqt5還需要qt5的dll檔案以及外掛程式資料夾,有兩種方法

方法一:

直接把c:\qt\qt5.6.3\5.6.3\msvc2013\bin目錄新增到path環境變數

方法二:

把c:\qt\qt5.6.3\5.6.3\msvc2013\目錄下的bin資料夾和plugins資料夾複製到python27/lib/site-packages/pyqt5目錄下,然後編輯pyqt5目錄下__init__.py檔案,新增如下**:

import os

dir=os.path.join(os.path.dirname(__file__),'bin;')

os.environ['path']=dir+os.environ['path']

注:使用vs2013編譯的pyqt5,依賴vc12執行庫,所以不要忘記msvcr120.dll和msvcp120.dll

32bit python2.7 版pyqt5編譯安裝成功,enjoy it!

pyqt5切換python版本 pyqt5介面切換

主要的思路就是建立兩個frame 如果有兩個以上同理 使用setvisible 函式顯示或者隱藏frame 引數是bool值 import sys from pyqt5.qtwidgets import from pyqt5.qtcore import from pyqt5.qtgui import...

PyQT5 學習使用 筆記 一 安裝pyQT5

之前已經學習過了qt 的 基本使用了解了 訊號和槽 的機制。由於新專案需要跨平台,所以 在視覺開發包的選擇上 選擇了opencv python,所幸 qt也有pyqt5 的包可以和 opencv python 聯合使用開發。廢話不說了 開始安裝吧。開啟cmd命令列介面輸入 pip install p...

PyQt5控制項的使用

qtablewidget qtabwidget qpixmap 圖表工具qchart 下拉選擇框qcombobox qtablewidget問題列表 空間不夠時單元格文字顯示不全 設定item背景色和字型顏色 場景 當空間不夠時,單元格內容會顯示不完全出現省略號 如下 方案 table object...