PyQt5在Pycharm上的環境搭建 -- Qt Designer + Pyuic + Pyrcc組合,大幅提升GUI開發效率

軟件安裝


目標軟件:

  • Python解釋器
  • Pycharm編輯器

Python官網: 點擊訪問Python官網

Pycharm官網:點擊訪問Pycharm官網

環境搭建


搭建完成后最終的環境詳情:

python安裝路徑:D:\ProgramEnviron\Python\Python311Python 3.13.2
pip 25.1.1PyQt5 5.15.11
qt5_applications 5.15.2.2.3

1)首先配置一下pip的默認鏡像資源,它可以有效的提高效率,否則下載速度將會很慢。配置語法及配置命令如下:

# pip config set global.index-url 鏡像源地址
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

使用國內的各大鏡像源進行下載,下載速度快!

清華大學鏡像:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云鏡像:https://mirrors.aliyun.com/pypi/simple/
中科大鏡像:https://pypi.mirrors.ustc.edu.cn/simple/
...

2)對pip進行升級,在終端執行下列命令:

pip install --upgrade pip #(或者pip install -U pip)

3)接下來安裝PyQt5的環境,一共需要安裝兩個包,分別是pyqt5qt5_applications,具體命令如下:

# 安裝qt環境
pip install pyqt5
# 安裝qt相關環境,如designer、pyuic、pyrcc...都包含在qt5_applications內
pip install qt5_applications

4)通過安裝的qt5_application添加外部工具,下圖是打開添加外部工具步驟:

在這里插入圖片描述

5)首先添加Qt Designer設計師,在打開的Create Tool窗口填寫信息,名稱填寫為Qt Designer,程序選擇剛才安裝的qt5_applications模塊的路徑下的Qt\bin\designer.exe,此項參數為空,工作目錄為默認。完成后點擊OK即可;

參數設置:
Name: Qt Designer
Program: D:\ProgramEnviron\Python\Python311\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
Arguments: 
Working directory: D:\ProgramEnviron\Python\Python311\Lib\site-packages\qt5_applications\Qt\bin

在這里插入圖片描述

注意:此處的程序路徑填寫時是在自己本機的路徑下找,以上是根據我的路徑進行查找的,只需找到Python的安裝路徑就可以確定程序的路徑了,程序路徑位于Python路徑下的 .\Lib\site-packages\qt5_applications\Qt\bin\designer.exe

可以通過終端進行對Python路徑的查找,打開終端輸入下列命令:

where python

在這里插入圖片描述

6)然后添加pyuic工具,在打開的Create Tool窗口填寫信息,名稱填寫為pyuic,程序選擇Python路徑下的D:\ProgramEnviron\Python\Python311\python.exe,此項參數為-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py,工作目錄為$FileDir$。完成后點擊OK即可;

參數設置:
Name: pyuic
Program: :\ProgramEnviron\Python\Python311\python.exe
Arguments: -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
Working directory: $FileDir$

在這里插入圖片描述

7)然后添加pyrcc工具,在打開的Create Tool窗口填寫信息,名稱填寫為pyrcc,程序選擇Python路徑下的D:\ProgramEnviron\Python\Python311\python.exe,此項參數為-m PyQt5.pyrcc_main $FileName$ -o $FileNameWithoutExtension$_rc.py,工作目錄為$FileDir$。完成后點擊OK即可;

參數設置:
Name: pyuic
Program: :\ProgramEnviron\Python\Python311\python.exe
Arguments: -m PyQt5.pyrcc_main $FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory: $FileDir$

在這里插入圖片描述

等上述三個工具全部設置完成后,我們就相當于Qt5的環境設置完成了,點擊Apply應用工具。

驗證環境


驗證Qt Designer

1)依次點擊 Tools --> External Tools(外部工具) --> Qt Designer 打開設計師,進入設計師主界面,如下圖所示:

在這里插入圖片描述

2)在打開的設計師界面選擇MainWindow窗體,點擊創建,如下圖:

在這里插入圖片描述

3)接下來對界面進行設計,例如我設置一個簡單的登錄界面,如下圖:

在這里插入圖片描述

4)在設計完成后保存ui文件,記住自己的路徑選擇,后續要用,圖示如下:

在這里插入圖片描述

驗證pyuic

1)將剛才保存的ui文件找到,使用Pycharm打開,在Pycharm界面資源管理器中找到該ui文件,右擊選擇 External Tools(外部工具) --> pyuic,點擊完成后便會生成當前的ui文件的Python代碼。如下圖所示:

在這里插入圖片描述

2)可以新建一個main.py文件來表示主文件,在該文件內添加如下代碼(確保該文件與生成的ui的python在同一目錄下):

import sys  from PyQt5.QtWidgets import QMainWindow, QApplication  
from untitled import Ui_MainWindow  class windows(QMainWindow, Ui_MainWindow):  def __init__(self):  super(windows, self).__init__()  self.setupUi(self)  # 格式化代碼 ctrl + alt + L
if __name__ == "__main__":  app = QApplication(sys.argv)  ui = windows()  ui.show()  app.exec_()

3)添加完成后可以執行當前代碼,發現運行結果與之前的設計器的效果相同,如下圖:

在這里插入圖片描述

驗證pyrcc

1)重新打開Qt Designer設計師,打開之前保存的ui文件,如下圖:

在這里插入圖片描述

2)為該ui界面添加一個圖片,成功添加后保存,如下圖:

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

3)效果圖如下,點擊保存,然后再次回到Pycharm進行pyuic轉換,這時會比之前多出一個.qrc文件,在該.qrc文件右擊選擇 External Tools(外部工具) --> pyrcc 進行轉化,可以得到一個python文件。

在這里插入圖片描述

在這里插入圖片描述

結尾


至此,若根據上述操作能夠成功驗證三個工具,那我們的PyQt5的PyCharm環境就搭建完成了,接下來開啟Qt5之旅吧!

原文地址: PyQt5在Pycharm上的環境搭建 – Qt Designer + Pyuic + Pyrcc組合,大幅提升GUI開發效率

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92251.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92251.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92251.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

30天打牢數模基礎-卷積神經網絡講解

案例代碼實現一、代碼說明本案例使用PyTorch實現一個改進版LeNet-5模型,用于CIFAR-10數據集的圖像分類任務。代碼包含以下核心步驟:數據加載與預處理(含數據增強,劃分訓練/驗證/測試集);定義CNN網絡結構&am…

Dev-C++——winAPI貪吃蛇小游戲

🚀歡迎互三👉:霧狩 💎💎 🚀關注博主,后期持續更新系列文章 🚀如果有錯誤感謝請大家批評指出,及時修改 🚀感謝大家點贊👍收藏?評論? 今天水一篇吧…

【openbmc6】entity-manager

文章目錄 2.1 事件監聽:dbus在linux上使用的底層通信方式多半是unix domain socket ,事件的到來可被抽象為:socket上有數據,可讀 2.2 事件處理:由于主線程肯定有邏輯得跑,因此新開一個線程甚至多個線程專門用來監聽和處理事件,但存在多線程就意味著可能存在競爭,存在競…

Java 實現 UDP 多發多收通信

在網絡通信領域,UDP(用戶數據報協議)以其無連接、高效率的特點,在實時通信場景中占據重要地位。本文將結合一段實現 UDP 多發多收的 Java 代碼,詳細解析其實現邏輯,幫助開發者深入理解 UDP 通信的底層邏輯與…

Java學習第六十二部分——Git

目錄 一、關鍵概述 二、核心概念 三、常用命令 四、優勢因素 五、應用方案 六、使用建議 一、關鍵概述 提問:Git 是什么? 回答:一句話,分布式版本控制系統(DVCS),用來跟蹤文件&#…

CDN和DNS 在分布式系統中的作用

一、DNS:域名系統(Domain Name System) 1. 核心功能 DNS是互聯網的“地址簿”,負責將人類易記的域名(如www.baidu.com)解析為計算機可識別的IP地址(如180.101.50.242)。沒有DNS&…

uniapp用webview導入本地網頁,ios端打開頁面空白問題

目前還沒解決,DCloud官方也說不行 IOS下webview加載本地網頁時,無法加載資源 - DCloud問答

軟考 系統架構設計師系列知識點之面向服務架構設計理論與實踐(8)

接前一篇文章:軟考 系統架構設計師系列知識點之面向服務架構設計理論與實踐(7) 所屬章節: 第15章. 面向服務架構設計理論與實踐 第3節 SOA的參考架構 15.3 SOA的參考架構 IBM的Websphere業務集成參考架構(如圖15-2所示,以下簡稱參考架構)是典型的以服務為中心的企業集…

基于 Docker 及 Kubernetes 部署 vLLM:開啟機器學習模型服務的新篇章

在當今數字化浪潮中,機器學習模型的高效部署與管理成為眾多開發者和企業關注的焦點。vLLM 作為一款性能卓越的大型語言模型推理引擎,其在 Docker 及 Kubernetes 上的部署方式如何呢?本文將深入探討如何在 Docker 及 Kubernetes 集群中部署 vL…

工業互聯網六大安全挑戰的密碼“解法”

目錄 工業互聯網密碼技術應用Q&A Q1:設備身份認證與接入控制 Q2:通信數據加密與完整性保護 Q3:遠程安全訪問 Q4:平臺與數據安全 Q5:軟件與固件安全 Q6:日志審計與抗抵賴 首傳信安-解決方案 總…

基于springboot的在線問卷調查系統的設計與實現(源碼+論文)

一、開發環境 1 Java語言 Java語言是當今為止依然在編程語言行業具有生命力的常青樹之一。Java語言最原始的誕生,不僅僅是創造者感覺C語言在編程上面很麻煩,如果只是專注于業務邏輯的處理,會導致忽略了各種指針以及垃圾回收這些操作&#x…

民法學學習筆記(個人向) Part.1

民法學學習筆記(個人向) Part.1有關民法條文背后的事理、人心、經濟社會基礎;民法的結構民法學習的特色就是先學最難的民法總論,再學較難的物權法、合同法等,最后再學習最簡單的婚姻、繼承、侵權部分。這是一個由難到易的過程,尤為…

ElasticSearch Doc Values和Fielddata詳解

一、Doc Values介紹倒排索引在搜索包含指定 term 的文檔時效率極高,但在執行相反操作,比如查詢一個文檔中包含哪些 term,以及進行排序、聚合等與指定字段相關的操作時,表現就很差了,這時候就需要用到 Doc Values。倒排…

【C語言】解決VScode中文亂碼問題

文章目錄【C語言】解決VScode中文亂碼問題彈出無法寫入用戶設置的處理方法彈出無法在只讀編輯器編輯的問題處理方法【C語言】解決VScode中文亂碼問題 💬歡迎交流:在學習過程中如果你有任何疑問或想法,歡迎在評論區留言,我們可以共…

MySQL筆記4

一、范式1.概念與意義范式(Normal Form)是數據庫設計需遵循的規范,解決“設計隨意導致后期重構困難”問題。主流有 三大范式(1NF、2NF、3NF),還有進階的 BCNF、4NF、5NF 等,范式間是遞進依賴&am…

切比雪夫不等式的理解以及推導【超詳細筆記】

文章目錄參考教程一、意義1. 正態分布的 3σ 法則2. 不等式的含義3. 不等式的意義二、不等式的證明1. 馬爾科夫不等式馬爾可夫不等式證明(YYY 為非負隨機變量 )2. 切比雪夫不等式推導參考教程 一個視頻,徹底理解切比雪夫不等式 一、意義 1. 正態分布的…

Spring Boot Jackson 序列化常用配置詳解

一、引言在當今的 Web 開發領域,JSON(JavaScript Object Notation)已然成為數據交換的中流砥柱。無論是前后端分離架構下前后端之間的數據交互,還是微服務架構里各個微服務之間的通信,JSON 都承擔著至關重要的角色 。它…

Jetpack ViewModel LiveData:現代Android架構組件的核心力量

引言在Android應用開發中,數據管理和界面更新一直是開發者面臨的重大挑戰。傳統的開發方式常常導致Activity和Fragment變得臃腫,難以維護,且無法優雅地處理配置變更(如屏幕旋轉)。Jetpack中的ViewModel和LiveData組件正…

Python數據分析案例79——基于征信數據開發信貸風控模型

背景 雖然模型基本都是表格數據那一套了,算法都沒什么新鮮點,但是本次數據還是很值得寫個案例的,有征信數據,各種,個人,機構,逾期匯總..... 這么多特征來做機器學習模型應該還不錯。本次帶來&…

板凳-------Mysql cookbook學習 (十二--------3_2)

3.3鏈接表 結構 P79頁 用一個類圖來表示EmployeeNode類的結構,展示其屬性和關系: plaintext ----------------------------------------- | EmployeeNode | ----------------------------------------- | - emp_no: int …