Python----PyQt開發(PyQt基礎,環境搭建,Pycharm中PyQttools工具配置,第一個PyQt程序)

一、QT與PyQT的概念和特點

1.1、QT

????????QT是一個1991年由The Qt Company開發的跨平臺C++圖形用戶界面應用程序開發 框架,可構建高性能的桌面、移動及Web應用程序。也可用于開發非GUI程序,比如 控制臺工具和服務器。Qt是面向對象的框架,使用特殊的代碼生成擴展(稱為元對象 編譯器(Meta Object Compiler, moc))以及一些宏,Qt很容易擴展,并且允許真正 的組件編程。2008年Qt Company科技被諾基亞公司收購,隨后4年里,因各種原因 最終導致于2012年,被Digia公司收購。

?????????平臺支持:QT支持多個操作系統,包括Windows、macOS、Linux、Android和 iOS等,使開發人員能夠輕松地開發一次代碼,然后在不同平臺上部署和運行應 用程序。

????????GUI開發:QT提供了一套強大的GUI庫,可以快速創建現代化的用戶界面。它包 括豐富的UI控件、布局管理器、繪圖和圖像處理工具,使開發人員能夠創建各種 各樣的用戶界面。

????????信號與槽機制:QT引入了一種名為"信號與槽"的機制,用于處理對象之間的通信 和事件處理。這種機制使開發人員能夠輕松地實現應用程序的事件響應和數據傳 遞。

????????數據庫訪問:QT提供了對多種數據庫的支持,包括MySQL、SQLite、Oracle和 Microsoft SQL Server等。它提供了一套完整的API,使開發人員能夠方便地連 接、查詢和操作數據庫。

????????網絡編程:QT提供了網絡編程的支持,包括TCP/IP和UDP通信、HTTP請求和響 應、FTP傳輸等。它使開發人員能夠構建具有網絡功能的應用程序,如客戶端-服 務器應用程序和網絡通信工具。

????????多媒體功能:QT具有豐富的多媒體功能,包括音頻和視頻播放、圖像處理和操 作、攝像頭和音頻設備訪問等。它提供了一套簡單易用的API,使開發人員能夠 輕松地集成多媒體功能到應用程序中。

????????總之,QT是一個功能強大的C++應用程序開發框架,具有跨平臺支持、GUI開 發、信號與槽機制、數據庫訪問、網絡編程和多媒體功能等特點。它被廣泛應用 于各種領域的應用程序開發,包括桌面軟件、移動應用、嵌入式系統和圖形化界 面工具等。

1.2、PyQT?

????????PyQt 是一個用于創建桌面應用程序的 Python 框架,它是基于 Qt 庫的 Python 綁 定。用于開發圖形用戶界面、網絡應用、數據庫驅動和其他各種應用程序。PyQt 提 供了對 Qt 庫的 Python 封裝,使得開發者可以使用 Python 編程語言來利用 Qt 的強 大功能。

1.2.1、pyqt5

????????PyQt5 是 Riverbank Computing 開發的 GUI 小部件工具包的最新版本。它是 Qt 的 Python 接口,是最強大和流行的跨平臺 GUI 庫之一。

????????PyQt5 是 Python 編程語言和 Qt 庫的混合體。 所以說PyQt5就是Python的圖 形界面開發庫。 程序的用戶交互界面,稱為UI(User interface)。通過使用PyQt5庫,我們可 以快速制作自己的小工具。

pyqt5優勢:?

1.文檔齊全:PyQt是對Qt庫的一個綁定,且保持了Qt庫原有的API,因此PyQt除了可 以使用自己的文檔,也幾乎可以通用Qt的文檔。

2.穩定性高:PyQt使用C++開發,底層使用Qt庫,因此比純Python的GUI庫更加穩定 可靠。PyQt支持跨平臺開發,而且保持著和Qt庫的同步更新,因此在不同的操作系統和 Python版本下都有良好的兼容性。

3.生態支持:PyQt擁有一個活躍的社區和豐富的第三方庫支持,可以方便地實現各種功 能,如數據庫操作、圖形繪制、圖像處理等。另外,PyQt作者也開發了一些擴展包,如 PyQtChart、PyQtDataVisualization等,使得繪制圖表和數據可視化變得更加容易。

4.開源免費:PyQt5采用雙開源協議,第一種采用GPL(GNU General Public License)協議,開發人員可以免費使用PyQt5(但你的應用也必須遵循GPL協議即源代碼 公開),第二種商業許可證,如果你不想公開你的源碼,或者不希望遵守GPL協議,那么你 可以購買PyQt5的商業許可證,即可不公開程序源碼。這使得PyQt在開源界和商業界都有 廣泛的應用和支持。?

應用:?

1.游戲開發,雖然 PyQT5 主要用于創建用戶界面,但它也可以用于游戲開發,尤其是 那些注重故事敘述和角色交互的圖形冒險游戲。

2.自動化和控制系統,PyQT5 可以用于創建監控和控制系統,它提供了對信號和槽機制 的支持,這有助于實現復雜的事件處理邏輯。

3.桌面應用程序,它提供了豐富的控件和組件,以及強大的布局管理器,使得開發者可 以輕松地創建具有復雜界面的應用程序。

4.嵌入式開發,PyQT5 可以用于創建定制的硬件設備上的應用程序。?

1.2.2、 pyqt6

????????PyQt6 是一個功能強大的 Python 庫,用于創建跨平臺的圖形用戶界面應用程序。它是 Qt 應用程序框架的 Python 綁定,Qt 是一個廣泛使用的 C++ 庫。

  • PyQt6: 綁定到 Qt 6.x 系列。Qt 6 是對 Qt 5 的重大更新,包含許多功能增強和重構。

  • 在 PyQt6 中,許多類和方法的名稱和參數進行了更改,有些過時或不再支持。

  • PyQt6 進行了模塊化改進,有些模塊被拆分或重命名。例如,QtWidgetsQtGui?和?QtCore?模塊在 PyQt6 中的使用方式有所調整,某些類可能需要從不同的模塊導入。

  • PyQt6 使用 Python 的原生類型,而 PyQt5 除了提供信號與槽的傳統方式外,還允許使用老式的字符串形式來定義信號和槽。

  • PyQt6 在類型提示方面更為嚴格,鼓勵類型注釋。這有助于開發人員在使用 IDE 時獲得更好的補全和錯誤提示。

  • Qt 6 在渲染和性能方面做了一些改進,支持更現代的圖形技術(如 Vulkan),使得圖形和動畫的展示更加流暢。

  • Qt 6 引入了許多新的功能,例如對 3D 圖形的增強支持、改進的多媒體處理、對高 DPI 顯示器的更好支持等,這些特性在 PyQt6 中也得到了體現。

????????由于 API 的更改,PyQt5 和 PyQt6 之間的代碼不一定可以互換。如果你正在開發新項目,建議使用 PyQt6,因為它將提供最新的功能和更好的支持。

二、PySide與PyQt的區別

2.1、 什么是Pyside

????????PySide,最初是由是由Nokia公司開發,現在由 Qt 公司維護,它是 Qt 框架的另一 個 Python 綁定。PySide2 是針對 Qt 5 的版本,而 PySide6 是針對最新 Qt 6 版本的 Python 綁定。PySide是跨平臺的圖形使用界面框架Qt的Python版本。提供和PyQt 類似的功能,并兼容API。但與PyQt不同處為使用LGPL許可。他是一個專門用于創建 GUI的庫,可以在Python中使用,也可以在不同的操作系統上使用 (linux&windows)。此外大多數的DCC軟件都使用它,比如Maya、houdini和 Blender等。Pyside基于QT的C++框架。

2.2、Pyside與PyQt的區別

2.2.1、許可協議

????????PyQt5 提供了兩種許可選項:GPL 和商業許可。使用 GPL 許可證時,你的應用 程序必須開源;如果選擇商業許可,則需要付費。

????????PySide采用LGPL(GNU Lesser General Public License)開源協議,LGPL是一 個較為寬松的開源協議,與 GPL 相比,它允許商業軟件在不公開源代碼的情況下 使用 LGPL 許可的庫。這意味著你可以使用 PySide 來開發商業應用程序,而不 必開源你的整個應用程序,只需確保對 PySide 本身所做的任何修改是開源的。

2.2.2、開發和維護

PySide 由 The Qt Company 維護,它是 Qt 框架的官方 Python 綁定。

PyQt5 由 Riverbank Computing 維護,它是一個第三方解決方案。

2.2.3、API 兼容性

????????PySide 和 PyQt5的 API 非常相似,但并不完全相同。在某些情況下,類名、方法 名或參數可能會有所不同。因此,從一個庫遷移到另一個庫可能需要一些代碼修 改。

2.2.4、性能

????????在性能方面,PySide 和 PyQt5 通常非常相似,因為它們都依賴于相同的 Qt 庫。 但是,具體性能可能會因實現細節和優化而有所不同。

三、PyQT的安裝

pip install PyQt5==5.15.2 ?-i https://pypi.tuna.tsinghua.edu.cn/simple?

四、PyQT工具的導入配置

4.1、?PyQT工具

????????PyQt Tools 是 PyQt 框架提供的一組工具,主要用于輔助 PyQt 應用程序的開發和設計?

pip install PyQt5-tools==5.15.9.3.3??-i https://pypi.tuna.tsinghua.edu.cn/simple?

PyQt Tools 中常見的工具:?

?1. Qt Designer: 這是一個可視化的用戶界面設計器,允許開發者通過拖放方式設 計和布局應用程序的界面。設計好的界面可以保存為.ui 文件,然后可以使用 pyuic 工具將其轉換為相應的 Python 代碼,以便在 PyQt 應用程序中使用。

2. PyUIC: 這是一個用于將 Qt Designer 設計的 .ui 文件轉換為對應的 Python 代 碼的命令行工具。通過這個工具,可以將可視化設計的用戶界面集成到 PyQt 項 目中。

3. PyRCC: 用于將 Qt 資源文件 (.qrc) 編譯成 Python 模塊的工具。Qt 資源文件可 以包含圖像、文本文件等,通過編譯可以將這些資源文件嵌入到 PyQt 應用程序 中,方便統一管理。

4. Pylupdate: 用于更新 Qt 項目的翻譯文件 (.ts)。這在多語言支持的應用程序中 很有用,可以提供不同語言的界面翻譯。

4.2、PyQT工具在Pycharm中配置?

在 PyCharm 中導入 PyQt 工具通常是通過設置外部工具(External Tools)來完成 的。?

1. 打開 PyCharm: 打開你的 PyCharm IDE。

2. 進入設置(Settings): 在頂部菜單欄中,選擇 "File" -> "Settings"(在 macOS 上是 "PyCharm" -> "Preferences")。

3. 選擇 External Tools: 在設置窗口左側的導航欄中,展開 "Tools" 節點,并選擇 "External Tools"。

4. 添加外部工具: 在右側窗格中,點擊 "+"(添加)按鈕,然后選擇 "Program"。

5. 填寫外部工具信息: 在彈出的對話框中,填寫以下信息:

????????Name(名稱): 工具的名稱,例如 "pyuic" 或 "Qt Designer"。

????????Group(組): 可選,可以將工具分組,這樣可以更好地組織工具列表。

????????Description(描述): 工具的描述,用于說明工具的作用。

????????Program(程序): 工具的可執行文件路徑。例如,對于 pyuic,你需要指定 它的完整路徑,通常是在虛擬環境中的 Scripts(Windows)或 bin (Linux/Mac)目錄中。

????????Arguments(參數): 傳遞給工具的參數。對于 pyuic,這可能是一些選項和 輸入文件的路徑。

????????Working Directory(工作目錄): 工具運行時的工作目錄,通常可以設置為 你的項目根目錄。?

Qt Designer,圖形化布局工具:?

D:\Anaconda3\envs\over_project\Lib\site-packages\qt5_applications\Qt\bin\designer.exe

????????????????????????????????????????????????????????????????????????????????(程序路徑:填寫自己的該程序的位置

$FileDir$ (當前文件夾)

$ProjectFileDir$ (絕對路徑)

?

PyUIC,圖形界面轉py:?

D:\Anaconda3\envs\over_project\Scripts\pyuic5.exe

????????????????????????????????????????????????????????????????????????????????(程序路徑:填寫自己的該程序的位置

$FileName$ -o $FileNameWithoutExtension$.py (當前文件轉為.py文件)

$FileDir$?

?

Pyrcc ,資源轉py:?

D:\Anaconda3\envs\over_project\Scripts\pyrcc5.exe

????????????????????????????????????????????????????????????????????????????????(程序路徑:填寫自己的該程序的位置

$FileName$ -o $FileNameWithoutExtension$_rc.py (當前文件轉為.py文 件)?

$FileDir$?

?

五、第一個pyqt程序界面

import sys
from PyQt5.QtWidgets import QApplication,QWidgetif __name__ == '__main__':app = QApplication(sys.argv)  # 創建QApplication對象,接受命令行參數windows = QWidget()  # 創建一個QWidget窗口對象windows.setWindowTitle('第一個PyQt程序')  # 設置窗口標題為'第一個PyQt程序'windows.show()  # 顯示窗口app.exec()  # 啟動應用程序事件循環  

六、思維導圖

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

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

相關文章

win10 系統 自定義Ollama安裝路徑 及模型下載位置

win10 系統 自定義Ollama安裝路徑 及模型下載位置 由于Ollama的exe安裝軟件雙擊安裝的時候默認是在C盤,以及后續的模型數據下載也在C盤,導致會占用C盤空間,所以這里單獨寫了一個自定義安裝Ollama安裝目錄的教程。 Ollama官網地址&#xff1…

微軟官方出品GPT大模型編排工具:7個開源項目

今天一起盤點下,12月份推薦的7個.Net開源項目(點擊標題查看詳情)。 1、一個瀏覽器自動化操作的.Net開源庫 這是一個基于 Google 開源的 Node.js 庫 Puppeteer 的 .NET 開源庫,方便開發人員使用無頭 Web 瀏覽器抓取 Web、檢索 Ja…

蘋果CMS站群插件的自動生成功能:提升網站流量的秘訣

引言 在數字營銷的浪潮中,站群技術因其強大的流量引導能力而備受青睞。蘋果CMS作為一款優秀的內容管理系統,憑借其靈活性和可擴展性,成為了站群管理的理想選擇。本文將詳細介紹蘋果CMS站群插件的自動生成功能,探討如何通過這一功…

VS Code User和System版區別【推薦使用System版本】and VSCode+Keil協同開發之Keil Assistant

VS Code User和System版區別 Chapter1 VS Code User和System版區別1. 對于安裝而言2. 結束語 Chapter2 VS Code 安裝、配置教程及插件推薦插件: Chapter3 VSCodeKeil協同開發之Keil Assistant1. 效果展示2. Keil Assistant簡介3. Keil Assistant功能特性4. 部署步驟…

大語言模型入門

大語言模型入門 1 大語言模型步驟1.1 pre-training 預訓練1.1.1 從網上爬數據1.1.2 tokenization1.1.2.1 tokenization using byte pair encoding 1.3 預訓練1.3.1 context1.3.2 training1.3.3 輸出 1.2 post-training1:SFT監督微調1.2.1 token 1.3 強化學習1.3.1 基…

DeepSeek R1 本地部署和知識庫搭建

一、本地部署 DeepSeek-R1,是幻方量化旗下AI公司深度求索(DeepSeek)研發的推理模型 。DeepSeek-R1采用強化學習進行后訓練,旨在提升推理能力,尤其擅長數學、代碼和自然語言推理等復雜任務 。 使用DeepSeek R1, 可以大大…

基于大數據的全國熱門旅游景點數據分析系統的設計與實現

【大數據】基于大數據的全國熱門旅游景點數據分析系統的設計與實現(完整系統源碼開發筆記詳細部署教程)? 目錄 一、項目簡介二、項目界面展示三、項目視頻展示 一、項目簡介 該系統主要包括登錄注冊、系統首頁、圖表分析、數據管理和個人信息五大功能模…

李宏毅機器學習筆記:【6.Optimization、Adaptive Learning Rate】

Optimization 1.Adaptive Learning Rate2.不同的參數需要不同的學習率3.Root Mean Square4.RMSProp5.Adam6.learning rate scheduling7.warm up總結 critical point不一定是你在訓練一個network時候遇到的最大的障礙。 1.Adaptive Learning Rate 也就是我們要給每個參數不同的…

Task03:Ollama API 的使用

Ollama API 使用指南 簡介 Ollama 提供了強大的 REST API,使開發者能夠方便地與大語言模型進行交互。通過 Ollama API,用戶可以發送請求并接收模型生成的響應,應用于自然語言處理、文本生成等任務。本文將詳細介紹生成補全、對話生成的基本…

我用AI做數據分析之四種堆疊聚合模型的比較

我用AI做數據分析之四種堆疊聚合模型的比較 這里AI數據分析不僅僅是指AI生成代碼的能力,我想是測試AI數據分析方面的四個能力,理解人類指令的能力、撰寫代碼的能力、執行代碼的能力和解釋結果的能力。如果這四個能力都達到了相當的水準,才可…

DC-6靶機滲透測試全過程

目錄 前期準備 一、滲透測試 1.IP地址查詢 2.端口信息搜尋 3.網頁信息搜集 wappalyzer WPScan 反彈shell graham用戶 反彈出jens的shell nmap提權 二、總結 前期準備 攻擊機: kali windows11 靶機:DC-6靶機(調至NAT模式&#xff0…

[操作系統] 基礎IO:系統文件I/O

在 Linux 操作系統中,文件 I/O(輸入/輸出)是程序與文件系統交互的基礎。理解文件 I/O 的工作原理對于編寫高效、可靠的程序至關重要。本文將深入探討系統文件 I/O 的機制。 一種傳遞標志位的方法 在 Linux 中,文件的打開操作通常…

3.8 AI驅動的市場調研革命:從數據采集到競品策略生成的閉環實踐指南

AI驅動的市場調研革命:從數據采集到競品策略生成的閉環實踐指南 引言:智能時代的高效市場洞察 Forrester研究顯示,使用AI輔助市場調研可使數據采集效率提升8倍,策略生成速度加快4倍。本文以GitHub Sentinel、LanguageMentor為案例,揭示如何構建AI增強型市場分析體系,實現…

AF3 MmcifObject類解讀

AlphaFold3 中 MmcifObject類 是 解析 mmCIF 文件的核心數據結構,用于存儲解析后的蛋白質結構信息,包含PDB 頭部信息、Biopython 解析的結構、鏈序列信息等。 下面代碼包含 Monomer 、AtomSite、ResiduePosition、ResidueAtPosition、 MmcifObject以及ParsingResult數據類的…

網絡安全 “免疫力”:從人體免疫系統看防御策略

在當今數字化時代,網絡安全已變得至關重要。每天,我們的網絡系統都面臨著來自各方的威脅,就像人體時刻暴露在各種病原體中一樣。今天,我們就來聊聊網絡安全與人體免疫系統的奇妙聯系,看看從免疫系統中能汲取哪些構建強…

滾動彈幕案例

滾動彈幕案例 一、需求 1.頁面上漂浮字體大小不一、顏色不一&#xff0c;從左向右滾動的彈幕&#xff1b; 2.底部中間有一個發送功能&#xff0c;可以發送新的彈幕&#xff1b; 3.底部的發送部分可以向下收起和彈出。 二、html <div class"container"><…

【wiki知識庫】08.添加用戶登錄功能--后端SpringBoot部分

目錄 一、今日目標? 二、SpringBoot后端實現 2.1 新增UserLoginParam 2.2 修改UserController 2.3 UserServiceImpl代碼 2.4 創建用戶上下文工具類 2.5?通過token校驗用戶&#xff08;重要&#xff09; 2.6 創建WebMvcConfig 2.7 用戶權限校驗攔截器 一、今日目標 上…

AI大模型的技術突破與傳媒行業變革

性能與成本&#xff1a;AI大模型的“雙輪驅動” 過去幾年&#xff0c;AI大模型的發展經歷了從實驗室到產業化的關鍵轉折。2025年初&#xff0c;以DeepSeek R1為代表的模型在數學推理、代碼生成等任務中表現超越國際頭部產品&#xff0c;而訓練成本僅為傳統模型的幾十分之一。這…

C++字符串處理指南:從基礎操作到性能優化——基于std::string的全面解析

博主將從C標準庫中的 std::string 出發&#xff0c;詳細探討字符串的處理方法&#xff0c;涵蓋常見操作、性能優化和實際應用場景。以下內容將圍繞std::string 的使用展開&#xff0c;結合代碼示例進行說明。 一、std::string 的基本操作 1.1 創建與初始化 std::string 提供了…

3.【線性代數】——矩陣乘法和逆矩陣

三 矩陣乘法和逆矩陣 1. 矩陣乘法1.1 常規方法1.2 列向量組合1.3 行向量組合1.4 單行和單列的乘積和1.5 塊乘法 2. 逆矩陣2.1 逆矩陣的定義2.2 奇異矩陣2.3 Gauss-Jordan 求逆矩陣2.3.1 求逆矩陣 ? \Longleftrightarrow ?解方程組2.3.2 Gauss-Jordan求逆矩陣 1. 矩陣乘法 1.…