PyQt5在PyCharm中的安裝和使用

上兩篇文章實(shí)現(xiàn)了根據(jù)輸入歌手名爬取這個(gè)歌手的所有歌詞讨便,并生成可視化詞云;但是這些腳本運(yùn)行只能在python環(huán)境下運(yùn)行以政,不具有通用性霸褒,所以就想使用Python的GUI編程解決方案之一PyQt5,實(shí)現(xiàn)交互頁(yè)面盈蛮,然后再打成exe文件废菱,這樣就可以在Windows上運(yùn)行了。

1.PyQt5介紹

PyQt5官網(wǎng)
PyQt5官方文檔

PyQt5是基于Digia公司強(qiáng)大的圖形程式框架Qt5的python接口抖誉,由一組python模塊構(gòu)成殊轴。PyQt5本身?yè)碛谐^(guò)620個(gè)類和6000函數(shù)及方法。在可以運(yùn)行于多個(gè)平臺(tái)寸五,包括:Unix, Windows, and Mac OS梳凛。
PyQt5的類存在與如下模塊當(dāng)中:
QtCore模塊涵蓋了包的核心的非GUI功能,此模塊被用于處理程序中涉及到的 time梳杏、文件、目錄淹接、數(shù)據(jù)類型十性、文本流、鏈接塑悼、mime劲适、線程或進(jìn)程等對(duì)象。
QtGui模塊涵蓋多種基本圖形功能的類; 包括但不限于:窗口集厢蒜、事件處理霞势、2D圖形、基本的圖像和界面 和字體文本斑鸦。
QtWidgets模塊包含了一整套UI元素組件愕贡,用于建立符合系統(tǒng)風(fēng)格的classic界面,非常方便巷屿,可以在安裝時(shí)選擇是否使用此功能固以。
QtMultimedia模塊包含了一套類庫(kù),該類庫(kù)被用于處理多媒體事件嘱巾,通過(guò)調(diào)用API接口訪問(wèn)攝像頭憨琳、語(yǔ)音設(shè)備、收發(fā)消息(radio functionality)等旬昭。
QtBluetooth模塊包含了處理藍(lán)牙活動(dòng)的類庫(kù)篙螟,它的功能包括:掃描設(shè)備、連接问拘、交互等行為遍略。
QtNetwork模塊包含用于網(wǎng)絡(luò)編程的類庫(kù)慢味,這組類程序通過(guò)提供便捷的TCP/IP 及 UDP 的 c/s 程式碼集合,使得基于Qt的網(wǎng)絡(luò)編程更容易墅冷。
QtPositioning模塊用于獲取位置信息纯路,此模塊允許使用多種方式達(dá)成定位,包括但不限于:衛(wèi)星寞忿、無(wú)線網(wǎng)驰唬、文字信息。此應(yīng)用一般用于網(wǎng)絡(luò)地圖定位系統(tǒng)腔彰。
Enginio模塊用于構(gòu)建客戶端的應(yīng)用程式庫(kù)叫编,用于在運(yùn)行時(shí)訪問(wèn) Qt Cloud 服務(wù)器托管的應(yīng)用程序。
QtWebSockets模塊包含了一組類程序霹抛,用以實(shí)現(xiàn)websocket協(xié)議搓逾。
QtWebKit包含了用于實(shí)現(xiàn)基于webkit2的網(wǎng)絡(luò)瀏覽器的類庫(kù)。
QtWebKitWidgets模塊包含用于基于WebKit1的Web瀏覽器實(shí)現(xiàn)的類杯拐,用于基于QtWidgets的應(yīng)用程序
QtXml模塊包含了用于處理XML的類庫(kù)霞篡,此模塊為SAX和DOM API 的實(shí)現(xiàn)提供了方法。
QtSvg模塊通過(guò)一組類端逼,為顯示矢量圖形文件的內(nèi)容提供了方法朗兵。
QtSql模塊提供了數(shù)據(jù)庫(kù)對(duì)象的接口以供使用
QtTest模塊包含了可以通過(guò)單元測(cè)試,以調(diào)試PyQt5應(yīng)用程式的功能顶滩。

在PyQt5中編寫UI界面可以直接通過(guò)代碼來(lái)實(shí)現(xiàn)余掖,也可以通過(guò)Qt Designer來(lái)完成。Qt Designer的設(shè)計(jì)符合MVC的架構(gòu)礁鲁,其實(shí)現(xiàn)了視圖和邏輯的分離盐欺,從而實(shí)現(xiàn)了開(kāi)發(fā)的便捷。Qt Designer中的操作方式十分靈活仅醇,其通過(guò)拖拽的方式放置控件可以隨時(shí)查看控件效果冗美。Qt Designer生成的.ui文件(實(shí)質(zhì)上是XML格式的文件)也可以通過(guò)pyuic5工具轉(zhuǎn)換成.py文件。

2.安裝PyQt5

方法一:
使用pip命令安裝

pip install PyQt5
pip install pyqt5-tools

方法二:
在Pycharm中安裝



如圖所示着憨,搜索PyQt5和pyqt5-tools在點(diǎn)擊 Install Package即可墩衙。

3.配置Qt Designer

Qt Designer隨PyQt5-tools包一起安裝,其安裝路徑在 “Python安裝路徑\Lib\site-packages\pyqt5-tools”下甲抖。
若要啟動(dòng)Qt Designer可以直接到上述目錄下漆改,雙擊designer.exe打開(kāi)Qt Designer;或在PyCharm中將其配置為外部工具打開(kāi)准谚。

1). 在Pycharm中配置Qt Designer方法如下:

Settings -> Tools -> External Tools -> + ->選擇Program

Program:  D:\Studyspace\Python\reptile\venv\Scripts\pyqt5designer.exe
Arguments:  $FileDir$\$FileName$
Working directory:  $FileDir$

2).再次點(diǎn)擊+添加 .ui 文件轉(zhuǎn)換工具

Program:  D:\Studyspace\Python\reptile\venv\Scripts\pyuic5.exe
Arguments:  $FileName$ -o $FileNameWithoutExtension$.py
Working directory:  $FileDir$

3).再次點(diǎn)擊+添加 .qrc 文件轉(zhuǎn)換工具

Program:  D:\Studyspace\Python\reptile\venv\Scripts\pyrcc5.exe
Arguments:  $FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory:  $FileDir$

3.運(yùn)行QtDesigner

在Pycharm中點(diǎn)擊 Tools 然后 External Tools 的 PyQtDesigner 等待一會(huì)就運(yùn)行起來(lái)了


4.創(chuàng)建頁(yè)面布局

一般直接選擇 Main Window 就行挫剑,再點(diǎn)擊Create即可



創(chuàng)建了布局以后,在左側(cè)欄把需要的組件拖動(dòng)到畫布上即可柱衔,然后在右側(cè)可以調(diào)這個(gè)組件的相關(guān)參數(shù)



然后點(diǎn)擊保存樊破,會(huì)把 .ui 文件給保存到項(xiàng)目目錄下

點(diǎn)擊helloword.ui右鍵然后選擇External Tools 再選擇 pyuic5



會(huì)在同級(jí)目錄下生成一個(gè)helloworld.py文件

5.運(yùn)行創(chuàng)建的文件

編寫代碼調(diào)用創(chuàng)建的GUI文件

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from helloworld import *


class MyWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)
        self.setupUi(self)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    myWin = MyWindow()
    myWin.show()
    sys.exit(app.exec_())

6.總結(jié)

通過(guò)上面的一系列操作愉棱,配置了Qt Designer和轉(zhuǎn)換工具,了解了Qt Designer的設(shè)計(jì)界面哲戚,先在畫布上設(shè)計(jì)頁(yè)面奔滑,然后再根據(jù)保存的 .ui 文件轉(zhuǎn)換為 .py 文件 運(yùn)行后即可呈現(xiàn)出在畫布上設(shè)計(jì)的樣子。
Qt Designer對(duì)視圖和業(yè)務(wù)邏輯進(jìn)行了分離顺少,在優(yōu)化更改的時(shí)候只需要在設(shè)計(jì)上進(jìn)行更改朋其,然后再轉(zhuǎn)換成 .py 文件即可。也可以在轉(zhuǎn)換后的 .py 文件中進(jìn)行微調(diào)脆炎。
這樣就大大簡(jiǎn)化了我們的開(kāi)發(fā)負(fù)擔(dān)梅猿,提升了工作效率。棒棒噠~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末秒裕,一起剝皮案震驚了整個(gè)濱河市袱蚓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌几蜻,老刑警劉巖喇潘,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異入蛆,居然都是意外死亡响蓉,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門哨毁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人源武,你說(shuō)我怎么就攤上這事扼褪。” “怎么了粱栖?”我有些...
    開(kāi)封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵话浇,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我闹究,道長(zhǎng)幔崖,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任渣淤,我火速辦了婚禮赏寇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘价认。我一直安慰自己嗅定,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布用踩。 她就那樣靜靜地躺著渠退,像睡著了一般忙迁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碎乃,一...
    開(kāi)封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天姊扔,我揣著相機(jī)與錄音,去河邊找鬼梅誓。 笑死恰梢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的证九。 我是一名探鬼主播删豺,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼愧怜!你這毒婦竟也來(lái)了呀页?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拥坛,失蹤者是張志新(化名)和其女友劉穎蓬蝶,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體猜惋,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丸氛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了著摔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缓窜。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谍咆,靈堂內(nèi)的尸體忽然破棺而出禾锤,到底是詐尸還是另有隱情,我是刑警寧澤摹察,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布恩掷,位于F島的核電站,受9級(jí)特大地震影響供嚎,放射性物質(zhì)發(fā)生泄漏黄娘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一克滴、第九天 我趴在偏房一處隱蔽的房頂上張望逼争。 院中可真熱鬧,春花似錦偿曙、人聲如沸氮凝。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)罩阵。三九已至竿秆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稿壁,已是汗流浹背幽钢。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留傅是,地道東北人匪燕。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像喧笔,于是被迫代替她去往敵國(guó)和親帽驯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345