【嵌入式學習5】PyQt5模塊介紹、創建第一個窗口

目錄

1、PyQt介紹

①特點

②主要組件

2、創建第一個窗口

exce_()


1、PyQt介紹

????????PyQt 是一個用于創建圖形用戶界面(GUI)應用程序的 Python 庫,它是 Qt 框架的 Python 綁定。

①特點
  • 跨平臺:支持多種操作系統,包括 Windows、macOS 和 Linux
  • 豐富的控件庫:PyQt 提供了大量預定義的控件,如按鈕、文本框、列表框、菜單、工具欄等
  • 信號與槽機制:信號與槽是一種通信機制,用于在對象之間傳遞消息。當某個事件發生時(如用戶點擊按鈕),會發出一個信號,然后連接到一個槽(即一個函數),槽函數會被調用以處理該事件。
  • 支持多種編程范圍:支持面向對象編程,開發者可以創建自定義的控件類,繼承自 PyQt 的控件類,并重寫其方法來實現特定的功能
  • 與Python深度集成:PyQt 無縫集成到 Python 中,可以方便地與其他 Python 庫(如 NumPy、Matplotlib 等)結合使用
②主要組件
QtWidgets構建用戶界面的主要模塊QPushButton(按鈕)、QLabel(標簽)、QLineEdit(文本輸入框)、QTextEdit(多行文本框)、QTableView(表格視圖)等
QtGui與圖形相關的功能QPainter 用于繪圖操作,QFont 用于字體設置,QColor 用于顏色管理
QtCore提供了基礎的類和工具,如信號與槽機制、定時器、數據結構等QObject 是 PyQt 中所有對象的基類,它支持信號與槽的功能
QtMultimedia處理多媒體內容音頻和視頻播放,處理多媒體的內容和調用攝像頭
QtNetwork網絡編程功能支持 TCP/IP 和 UDP 等協議,可以用于開發網絡應用程序

·其他模塊:QtBluetooth[藍牙]、QtPositioningp[定位]、QtSql[處理數據庫]、QtTest[測試PyQt5應用]等..

2、創建第一個窗口

思考:需要窗口什么組件?

需要構建QtWidgets用戶界面模塊,QApplication初始化應用程序資源(窗口系統,事件循環等..),還需要sys模塊實現sys.exit()方法退出程序

import sys
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtGui import QIconclass MyWindow(QWidget):def __init__(self):# 調用父類的初始化方法super().__init__()# 定義自己的屬性self.setWindowTitle("自定義窗口")self.resize(400,300)self.setwindowIcon(QIcon('a.png'))self.setToolTip('這是一個氣泡提示')# 自定義繪制self.setStyleSheet("background-color:lightblue")if __name__ == '__main__':# sys.argv 是一個包含命令行參數的列表,QApplication 會解析這些參數并進行相應的處理app = QApplication(sys.argv)# 創建自定義窗口window = MyWindow()window.show()# exce()是QApplacation中的一種方法sys.exit(app.exec_())
exce_()
  • 啟動事件循環:exec_() 方法會啟動一個事件循環持續運行,直到用戶關閉應用程序或程序主動退出
  • 處理事件:在事件循環中,QApplication 會監聽各種事件(如鼠標事件、鍵盤事件、窗口事件等),并將這些事件分發給相應的控件進行處理。
  • 保持應用程序運行:事件循環會阻止程序繼續執行后續代碼,直到事件循環結束。exec_() 通常位于程序的最后,確保應用程序在用戶關閉窗口之前一直運行。

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

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

相關文章

封裝自己的api簽名sdk

api平臺接口調用,需要通過簽名去核對是不是有效的用戶,,一般會給兩個key,acceeKey 和 secretKey,第一個相當于用戶名,第二個相當于密鑰,,,前端通過一定的算法,&#xff0…

很簡單 的 將字幕生成視頻的 方法

一、一鍵將字幕生成視頻的 方法 1、下載任性動圖 10.7 以上版本 2、設置背景 1)背景大小 拉伸背景到合適大小,或者選擇右側比例 2)、直接空背景,設置背景顏色等詳細信息 3)、或者 復制或者突然圖片做背景 3、設置文…

Spring 核心技術解析【純干貨版】- XXI:Spring 第三方工具整合模塊 Spring-Context-Suppor 模塊精講

在企業級開發中,我們經常需要與 第三方工具 進行集成,如 郵件發送、任務調度、緩存管理等。Spring 為此提供了 Spring-Context-Support 模塊,它封裝了多個常見的第三方工具庫,使得開發者可以更方便地將它們集成到 Spring 項目中。…

c++柔性數組、友元、類模版

目錄 1、柔性數組: 2、友元函數: 3、靜態成員 注意事項 面試題:c/c static的作用? C語言: C: 為什么可以創建出 objx 4、對象與對象之間的關系 5、類模版 1、柔性數組: #define _CRT_SECURE_NO_WARNINGS #…

主相機綁定小地圖

資源初始化:在類中通過 property 裝飾器定義主相機、小地圖相機、小地圖精靈等資源屬性,便于在編輯器中賦值。在 start 方法里,當確認這些資源存在后,創建渲染紋理并設置其大小,將渲染紋理與小地圖相機關聯&#xff0c…

linux-core分析-柔性數組越界訪問

文章目錄 core的調用棧core分析修改修改原因柔性數組定義代碼修改總結core的調用棧 vocb core 崩潰:core的大小都是573M左右 Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000007f789af0d0 in strlen () from /lib/libc.so.6[Current thread is 1 (LW…

leetcode 代碼隨想錄 數組-區間和

題目 給定一個整數數組 Array,請計算該數組在每個指定區間內元素的總和。 輸入: 第一行輸入:為整數數組 Array 的長度 n,接下來 n 行,每行一個整數,表示數組的元素。隨后的輸入為需要計算總和的區間&…

部署nerdctl工具

nerdctl 是一個專為Containerd設計的容器管理命令行工具,旨在提供類似 Docker 的用戶體驗,同時支持 Containerd 的高級特性(如命名空間、compose等)。 1、下載安裝 wget https://github.com/containerd/nerdctl/releases/downlo…

【論文筆記】DeepSeek-R1 技術報告

最強開源LLM,性能和效果都很棒;在數學、代碼這種有標準正確答案的場景,表現尤為突出;一些其他場景的效果,可能不如DeepSeek-V3和Qwen。 Deepseek-R1沒有使用傳統的有監督微調sft方法來優化模型,而使用了大規…

YOLO學習筆記 | 基于YOLOv5的車輛行人重識別算法研究(附matlab代碼)

基于YOLOv5的車輛行人重識別算法研究 ???????????????????????????? 摘要 本文提出了一種基于YOLOv5的車輛行人重識別(ReID)算法,結合目標檢測與特征匹配技術,實現高效的多目標跟蹤與識別。通過引入注意力機制、優化損失函數和輕量化網絡結構…

Buildroot與Yocto介紹比對

Buildroot 和 Yocto 是嵌入式 Linux 領域最常用的兩大系統構建工具,它們在功能定位、使用方法和適用場景上有顯著差異。以下從專業角度對兩者進行對比分析: 一、Buildroot 核心功能與特點 1. 功能定位 輕量級系統構建工具:專注于快速生成精…

VUE3初始化項目安裝

本次就是作為實驗使用,包括安裝過程中遇到的問題,供大家提供參考,話不多說,看過程: 第1步:首先分別安裝node.js和npm,這步網上有很多資料,很簡單,過程省略了&#xff0c…

GO語言學習(17)Gorm的數據庫操作

目錄 🏆前言 1.Gorm的簡介 2.GORM連接數據庫 2.1 配置DSN Mysql,TiDB,MariaDB PostgreSQL SQL Server SQLite 2.2 gorm.Open連接數據庫 3.數據庫連接池的配置 4.使用GORM對數據庫進行操作(重點) 4.1 創…

【JavaEE】網絡原理詳解

1.????前言~🥳🎉🎉🎉 Hello, Hello~ 親愛的朋友們👋👋,這里是E綿綿呀????。 如果你喜歡這篇文章,請別吝嗇你的點贊????和收藏📖📖。如果你對我的…

第十五屆藍橋杯單片機省賽程序設計試題

同時也是積分賽——測量NE555輸出脈沖頻率 第十五屆 藍橋杯 單片機設計與開發項目 省賽1 第二部分 程序設計試題(85 分) (大學組) 一 基本要求 1、使用大賽組委會統一提供的四梯單片機競賽實訓平臺,完成本試題程序…

JavaScript智能對話機器人——企業知識庫自動化

引言 內部知識管理常面臨信息分散、查找困難的問題。本文將使用Node.js和虎躍辦公的智能對話API,構建企業級知識問答機器人,支持自然語言查詢和自動學習。 核心技術 自然語言處理(NLP)意圖識別機器學習模型微調REST API集成 代…

元宇宙浪潮下,前端開發如何“乘風破浪”?

一、元宇宙對前端開發的新要求 元宇宙的興起,為前端開發領域帶來了全新的挑戰與機遇。元宇宙作為一個高度集成、多維互動的虛擬世界,要求前端開發不僅具備傳統網頁開發的能力,還需要掌握虛擬現實(VR)、增強現實&#…

Spring Boot 3.4.3 基于 Caffeine 實現本地緩存

在現代企業級應用中,緩存是提升系統性能和響應速度的關鍵技術。通過減少數據庫查詢或復雜計算的頻率,緩存可以顯著優化用戶體驗。Spring Boot 3.4.3 提供了強大的緩存抽象支持,而 Caffeine 作為一款高性能的本地緩存庫,因其優異的吞吐量和靈活的配置,成為許多開發者的首選…

QT Quick(C++)跨平臺應用程序項目實戰教程 6 — 彈出框

目錄 1. Popup組件介紹 2. 使用 上一章內容完成了音樂播放器程序的基本界面框架設計。本小節完成一個簡單的功能。單擊該播放器頂部菜單欄的“關于”按鈕,彈出該程序的相關版本信息。我們將使用Qt Quick的Popup組件來實現。 1. Popup組件介紹 Qt 中的 Popup 組件…

DuckDB系列教程:如何分析Parquet文件

Parquet 是一種強大的、基于列的存儲格式,適用于實現更快捷和更高效的數據分析。您可以使用 DuckDB 這種內存型分析數據庫來處理 Parquet 文件并運行查詢以對其進行分析。 在這篇文章中,我們將逐步介紹如何使用 DuckDB 對存儲在 Parquet 文件中的餐廳訂單…