漫天撒花于 2018-09-04 12:26:51 發(fā)布 154441收藏 645文章標(biāo)簽: python Gui pyqt5 pycharm版權(quán) PyQt5 是用來創(chuàng)建Python GUI應(yīng)用程序的工具包。作為一個(gè)跨平臺(tái)的工具包,PyQt可以在所有主流操作系統(tǒng)上運(yùn)行(Unix,Windows,Mac)。 本文描述Windows系統(tǒng)下如何安裝Python + PyCharm + PyQt5,并通過PyQt5 采用 兩種方式設(shè)計(jì)GUI界面。a.直接使用代碼設(shè)計(jì)界面;b. 先使用QtDesigner進(jìn)行可視化設(shè)計(jì),然后將生成的.ui文件轉(zhuǎn)換成.py文件。 安裝Python + PyCharm + PyQt5 1、安裝Python 訪問官網(wǎng)https://www./,下載并安裝你的目標(biāo)Python版本。 2、安裝PyQt5 1)進(jìn)入cmd界面。執(zhí)行命令 pip install pyqt5 pyqt5-tools ,等待一會(huì)兒,命令執(zhí)行完畢后PyQt5就安裝好了。 在安裝過程中可能會(huì)報(bào)下面錯(cuò)誤,找不到對(duì)應(yīng)的pyqt5-tools版本。 Collecting pyqt5-tools Could not find a version that satisfies the requirement pyqt5-tools (from versions: ) No matching distribution found for pyqt5-tools 由于作者電腦上原來安裝了2016年某個(gè)版本的python3.5 ,幸運(yùn)的把pip install pyqt5 pyqt5-tools 一次執(zhí)行完畢,全部安裝完了。不過后來更新到python3.5.4和python3.7時(shí)都遇到了這個(gè)問題。python3.5.4在更新PIP到最新版本后,問題貌似也消失了。python3.7沒有再去解決。 2)在python 自帶的IDLE中試驗(yàn)一下pqyt5是否真的裝好了。 新建文件 firstPython.py 并輸入如下代碼 ##################################### import sys from PyQt5 import QtWidgets, QtCore app = QtWidgets.QApplication(sys.argv) widget = QtWidgets.QWidget() widget.resize(400, 100) widget.setWindowTitle("This is a demo for PyQt Widget.") widget.show() exit(app.exec_()) ##################################### 運(yùn)行后彈出如下界面,表示PyQt已經(jīng)正常工作啦。 如果不幸沒有彈出GUI窗口,而且提示錯(cuò)誤:ImportError: DLL load failed: 找不到指定的模塊。 據(jù)說這是由于缺少了合適的python3.dll,可以通過去 下載所需版本的python安裝包并安裝,然后從安裝目錄中拷貝python3.dll文件,和自己使用的python3x.dll放在同一級(jí)目錄下即可。 作者自己原來安裝的python3.5就是掛在了這一步,然后直接刪了重新安裝python3.5.4,又遇到了上面1)的問題。升級(jí)pip版本后莫名過關(guān)。建議大家按照上面建議的解決方式操作。 3、安裝PyCharm 1)訪問官網(wǎng)http://www./pycharm/download/#section=windows 作者選擇下載并安裝Community版本 ——目前是PyCharm 2018.2.2 Community Edition。 2)PyCharm 基本配置: a. 建立一個(gè)新項(xiàng)目:first。 b.設(shè)置默認(rèn)PyCharm解析器 選擇File | Settings | Project: first | Project Interpreter,設(shè)置 Project Interpreter為你使用的python版本 例如 C:\xxxx\AppData\Local\Programs\Python\Python35-32\python.exe c. 添加第三方庫 停留在 Project Interpreter 界面,點(diǎn)擊+,查找并安裝 pyqt5,pyqt5-sip ,pyqt5-tools 。安裝成功后返回,界面應(yīng)該如下。 d.配置PyQt PyCharm中選擇File | Settings | Tools | External Tools,點(diǎn)擊+ 新建工具, 建立QTdesigner 和 PyUIC工具 QTdesigner: 配置兩個(gè)關(guān)鍵參數(shù): Program:自己的designer.exe路徑 例如 C:\xxxx\AppData\Local\Programs\Python\Python35-32\Lib\site-packages\pyqt5-tools\designer.exe Working directory:$ProjectFileDir$ PyUIC: 配置三個(gè)關(guān)鍵參數(shù): Program:自己的python.exe路徑 例如 C:\xxxx\AppData\Local\Programs\Python\Python35-32\python.exe Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py Working directory:$ProjectFileDir$ 工具建立成功后返回ExternalTools界面,如下: 返回主界面,Tools->ExternalTools 中新增了QTdesigner 和 PyUIC兩個(gè)工具 4、PyCharm中通過PyQt5設(shè)計(jì)GUI界面 1)利用代碼創(chuàng)建GUI界面 新建firstGUI.py,輸入如下代碼 # -*- coding: utf-8 -*- """第一個(gè)程序""" from PyQt5 import QtWidgets # 導(dǎo)入PyQt5部件 import sys app = QtWidgets.QApplication(sys.argv) # 建立application對(duì)象 first_window = QtWidgets.QWidget() # 建立窗體對(duì)象 first_window.resize(400, 300) # 設(shè)置窗體大小 first_window.setWindowTitle("我的第一個(gè)pyqt程序") # 設(shè)置窗體標(biāo)題 first_window.show() # 顯示窗體 sys.exit(app.exec()) # 運(yùn)行程序 ############################################################### 選擇Run->Run firstGUI,結(jié)果顯示如下界面就成功了。 2)利用QT Designer代碼生成一個(gè)GUI界面 ,并用PyUIC轉(zhuǎn)換為.py文件。 選擇Tools->ExternalTools->QTdesigner,進(jìn)入QT Designer界面,第一次會(huì)彈出一個(gè)GUI創(chuàng)建界面,點(diǎn)擊creat 自動(dòng)生成一個(gè)帶下方按鈕的GUI界面,如下圖。 另存該界面為Utitled.ui文件。 返回PyCharm 項(xiàng)目界面,項(xiàng)目列表下多出了這個(gè).ui文件 右鍵單擊Utitled.ui,彈出列表中選擇ExternalTools->PyUIC 就會(huì)生成Utitled.ui對(duì)應(yīng)的Utitled.py文件了。內(nèi)容如下 # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'untitled.ui' # # Created by: PyQt5 UI code generator 5.11.2 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(400, 300) self.buttonBox = QtWidgets.QDialogButtonBox(Dialog) self.buttonBox.setGeometry(QtCore.QRect(30, 240, 341, 32)) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") self.retranslateUi(Dialog) self.buttonBox.accepted.connect(Dialog.accept) self.buttonBox.rejected.connect(Dialog.reject) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Dialog")) ############################################################################# That's All .Thankyou~ ———————————————— 版權(quán)聲明:本文為CSDN博主「漫天撒花」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/qq_41377419/article/details/82379818 |
|