PyQt5入門教程:從安裝到構建簡單應用

PyQt5入門教程:從安裝到構建簡單應用

簡介

PyQt5是一個功能強大的Python綁定庫,用于Qt應用程序框架。它允許我們使用Python語言快速開發跨平臺的桌面應用程序。本教程將引導你完成PyQt5的安裝、配置,并帶你創建一個簡單的圖形用戶界面(GUI)應用程序。

Part 1: 安裝PyQt5

在你的開發環境中安裝PyQt5:

  1. 打開終端或命令提示符。

  2. 創建并激活虛擬環境(可選,但推薦):

    python -m venv myenv
    myenv\Scripts\activate  # Windows
    source myenv/bin/activate  # macOS/Linux
    
  3. 使用pip安裝PyQt5和pyqt5-tools:

    pip install PyQt5 pyqt5-tools
    

    如果下載速度慢,可以指定國內鏡像源:

    pip install PyQt5 pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  4. 使用pip list確認PyQt5是否已安裝。

Part 2: PyCharm配置PyQt5

在PyCharm中配置PyQt5,以便使用Qt Designer設計UI:

  1. 打開PyCharm,進入“File” -> “Settings” -> “Tools” -> “External Tools”。

  2. 點擊“+”添加新工具,配置Qt Designer、PyUIC和Pyrcc。

    • QtDesigner

      • 名稱:QtDesigner
      • 程序:designer.exe的路徑(例如:C:\Python39\Lib\site-packages\PyQt5\Qt\bin\designer.exe)。
      • 工作目錄:$FileDir$
    • PyUIC

      • 名稱:PyUIC
      • 程序:Python解釋器的路徑。
      • 實參:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
      • 工作目錄:$FileDir$
    • Pyrcc

      • 名稱:Pyrcc
      • 程序:Python解釋器的路徑。
      • 實參:-rcc $FileName$ -o $FileNameWithoutExtension$_rc.py
      • 工作目錄:$FileDir$
  3. 配置完成后,你可以通過PyCharm訪問Qt Designer。

Part 3: 設計第一個UI

使用Qt Designer設計UI:

  1. 打開Qt Designer,選擇“Main Window”并創建新窗口。
  2. 在“Widget Box”中選擇組件,拖拽到設計畫布上。
  3. 使用“屬性編輯器”修改組件的屬性。
  4. 完成設計后,使用快捷鍵Ctrl + R預覽UI。

Part 4: 將UI轉換為Python代碼

  1. 在Qt Designer中完成設計后,保存.ui文件。

  2. 使用PyUIC工具將.ui文件轉換為Python代碼:

    pyuic5 your_ui_file.ui -o output_py_file.py
    
  3. 創建一個新的Python腳本,例如main.py,引入QApplication和QMainWindow,并使用轉換后的UI類創建應用程序:

    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow
    import your_ui_file  # 替換為你的.ui轉換后的模塊名class MainWindow(QMainWindow, your_ui_file.Ui_MainWindow):def __init__(self):super().__init__()self.setupUi(self)# 添加按鈕點擊事件self.pushButton.clicked.connect(self.on_pushButton_clicked)def on_pushButton_clicked(self):print("按鈕被點擊了!")if __name__ == '__main__':app = QApplication(sys.argv)mainWindow = MainWindow()mainWindow.show()sys.exit(app.exec_())
    
  4. 運行main.py,你將看到設計的用戶界面,并且按鈕點擊事件已經可以正常工作。

結語

本教程為你提供了一個完整的PyQt5入門流程,從安裝到配置,再到設計UI和編寫應用邏輯。PyQt5的世界非常廣闊,你可以繼續探索更多的組件和布局,甚至學習如何將應用程序打包發布。希望這個教程能夠幫助你開啟PyQt5的學習之旅。

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

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

相關文章

《python程序語言設計》2018版第5章第50題利用turtle編程顯示三角形圖案

2024.06.18 05.50.01version 首先我覺得還是應該現從簡單陣列來進行。非常簡單。順便回憶一下我3月份做的5.19題里那些淘氣的數列 代碼成功 #將i從10設計成12打印的畢竟好看 for i in range(1,12):#這這里給結尾的i2效果并不好看for j in range(1,i):print(j,end" "…

【深度學習】Transformer

李宏毅深度學習筆記 https://blog.csdn.net/Tink1995/article/details/105080033 https://blog.csdn.net/leonardotu/article/details/135726696 https://blog.csdn.net/u012856866/article/details/129790077 Transformer 是一個基于自注意力的序列到序列模型,與基…

軟件測試與質量保證 | 云班課選擇題庫

目錄 第1章課后習題 第2章課后習題 第3章課后習題 第4章課后習題 第5章課后習題 第6章課后習題 第7章課后習題 第8章課后習題 第9章課后習題 第10章課后習題 第11章課后習題 第12章課后習題 第13章 測試相關未分類習題 第1章課后習題 1. 與質量相關的概念包括 &a…

51單片機第26步_單片機工作在空閑模式

重點學習51單片機工作在空閑模式。 1、進入空閑模式的方法 通過將PCON寄存器中的IDLE置1,CPU就會進入空閑模式。在空閑模式中,程序停止執行,RAM中的數據仍然保持,晶振繼續工作,但與CPU斷開,定時器和串行口…

IPython調試秘籍:pdb調試器深度解析與實戰

🐞 IPython調試秘籍:pdb調試器深度解析與實戰 在Python編程中,調試是開發過程中不可或缺的一環。IPython,作為一個強大的交互式Python解釋器,內置了pdb調試器,使得代碼調試變得異常便捷。本文將深入探討如…

可充電紐扣電池ML2032充電電路設計

如圖,可充電紐扣電池ML2032充電電路設計。 圖中二極管是為了防止電流倒灌, 電阻分壓出3.66v,再減掉二極管壓降(約0.4v)得3.26V,加在電池正負極充電。 隨著電池電量的積累,充電電流逐步減小,極限…

什么樣的企業適合SD-WAN網絡專線?

SD-WAN(Software-Defined Wide Area Network,軟件定義廣域網)是一種網絡技術,它利用軟件定義的方式管理和控制廣域網(WAN),旨在提高網絡效率、降低成本并簡化網絡管理。以下是適合采用SD-WAN網絡…

服務器之BIOS基礎知識總結

1.BIOS是什么? BIOS全稱Basic Input Output System,即基本輸入輸出系統,是固化在服務器主板的專用ROM上,加載在服務器硬件系統上最基本的運行程序,它位于服務器硬件和OS之間,在服務器啟動過程中首先運行&am…

C語言在QC工作當中的應用

一、引入 在質量控制(Quality Control,簡稱QC)工作中,C語言的應用可能并不像在一些其他領域(如嵌入式系統開發、游戲開發等)中那么直接,但C語言仍然可以在多個方面為QC提供支持。以下是一些C語…

擺脫冗雜賦值(一)——巧用序列化反序列化及BeanUtils反射等工具解決開發時對象、集合、字符串等多種形式間相互轉換的方法及技巧

1、將Java對象轉換為JSON字符串 當我們需要將Java對象轉換為JSON字符串時,可以使用JSON.toJSONString()方法。下面是一個簡單的例子,展示如何使用JSON.toJSONString()將一個Java對象轉換為JSON字符串: import com.alibaba.fastjson.JSON;pu…

HUAWEI MPLS 靜態配置和動態LDP配置

MPLS(Multi-Protocol Label Switching,多協議標簽交換技術)技術的出現,極大地推動了互聯網的發展和應用。例如:利用MPLS技術,可以有效而靈活地部署VPN(Virtual Private Network,虛擬專用網),TE(Traffic Eng…

Rust 進階教程

Rust 進階教程 在基礎教程中,我們已經了解了Rust的基本語法和核心概念。本文將進一步探討Rust的進階特性和應用,包括泛型、閉包、迭代器、異步編程、宏和unsafe代碼等。 目錄 泛型閉包和迭代器 閉包迭代器 異步編程宏Unsafe代碼FFI(外部函…

pdf怎么拆分成一頁一頁?4種拆分方法分享

在日常的辦公學習中,PDF文檔因其跨平臺、易閱讀、不易篡改等特性,成為我們工作和學習中不可或缺的一部分。然而,當我們需要對PDF進行編輯、打印或分享時,有時需要將整個PDF文檔拆分成一頁一頁的單獨文件。那么,如何高效…

深入理解Vue生命周期鉤子函數

深入理解Vue生命周期鉤子函數 Vue.js 是一款流行的前端框架,通過其強大的響應式數據綁定和組件化的開發方式,使得前端開發變得更加簡單和高效。在Vue應用中,每個組件都有其生命周期,這些生命周期鉤子函數允許開發者在不同階段執行…

2024 AIGC 技術創新應用研討會暨數字造型設計師高級研修班通知

尊敬的老師、領導您好! 為深入響應國家關于教育綜合改革的戰略部署,深化職業教育、高等教育改革,發揮企業主體重要作用,促進人才培養供給側和產業需求側結構要素全方位融合,充分把握人工智能創意式生成(AIGC)技術在教育領域的發展…

【ruoyi】docker 項目實戰

一、引言 介紹ruoyi(若依)框架 本項目使用若依前后臺分離框架 https://gitee.com/ranmaxli/basic-business-platform 解釋為什么選擇Docker進行項目開發 使用docker是因為方便數據遷移、部署、管理 二、Docker基礎知識 Docker基本概念 容器與虛擬機

初學Spring之 IOC 控制反轉

Spring 是一個輕量級的控制反轉&#xff08;IOC&#xff09;和面向切面編程&#xff08;AOP&#xff09;的框架 導入 jar 包&#xff1a;spring-webmvc、spring-jdbc <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc&l…

HTTPS數字證書驗證論述

1 概述 網絡請求方式通常分為兩種&#xff0c;分別是HTTP請求和HTTPS請求&#xff0c;其中HTTP的傳輸屬于明文傳輸&#xff0c;在傳輸的過程中容易被人截取并且偷窺其中的內容&#xff0c;而HTTPS是一種在HTTP的基礎上加了SSL/TLS層&#xff08;安全套接層&#xff09;的安全的…

解決expand-change第一次展開無數據顯示與實現

最近寫需求時用到了expand-change表格展開回調&#xff0c;但我發現第一次展開后并沒有展示任何數據&#xff0c;但我的返回值是存在的&#xff0c;當第二次展開時發現數據就有了。此原因是因為獲取數據的接口是異步的&#xff0c;導致Dom渲染不同步導致的&#xff0c;其實解決…

Ubuntu24.04 Isaacgym的安裝

教程1 教程2 教程3 1.下載壓縮包 link 2. 解壓 tar -xvf IsaacGym_Preview_4_Package.tar.gz核心教程在 isaacgym/docs/install.html下 3. 從源碼安裝 Ubuntu24.04還需首先進入虛擬環境 python -m venv myenv # 創建虛擬環境&#xff0c;已有可跳過 source myenv/bin/a…