【python版QT學習】pyQT5上位機實戰(zhàn)筆記

      網(wǎng)友投稿 2016 2025-03-31

      配置相關

      designer.exe

      拖拉控件實現(xiàn)UI界面的工具,設計完成保存后是.ui文件

      Program參數(shù):D:\Python\Python38-32\Scripts\designer.exe

      Working directory參數(shù):$FileDir$

      pyuic5

      將界面.ui 文件轉換成.py文件

      Program參數(shù):D:\Python\Python38-32\Scripts\pyuic5.exe

      Argument參數(shù):$FileName$ -o $FileNameWithoutExtension$.py

      Working directory參數(shù):$FileDir$

      pyrcc5

      將資源(圖片).qrc 文件轉換成.py文件

      Program參數(shù):D:\Python\Python38-32\Scripts\pyrcc5.exe

      Argument參數(shù):$FileName$ -o $FileNameWithoutExtension$.py

      Working directory參數(shù):$FileDir$

      from…import * 語句與 import 區(qū)別

      import 模塊:導入一個模塊;注:相當于導入的是一個文件夾,是個相對路徑;使用:模塊.函數(shù)

      from…import:導入了一個模塊中的一個函數(shù);注:相當于導入的是一個文件夾中的文件,是個絕對路徑;使用:函數(shù)

      from a import A:導入a.py模塊中的A函數(shù)

      .app.exec_()

      程序一直循環(huán)運行直到主窗口被關閉終止進程

      作用是運行主循環(huán),必須調用此函數(shù)才能開始事件處理,調用該方法進入程序的主循環(huán)直到調用exit()結束

      主事件循環(huán)從窗口系統(tǒng)接收事件,并將其分派給應用程序小部件

      如果沒有該方法,那么在運行的時候還沒有進入程序的主循環(huán)就直接結束了,所以運行的時候窗口會閃退

      在退出時會返回狀態(tài)代碼

      不用sys.exit(app.exec_()),只使用app.exec_(),程序也可以正常運行,但是關閉窗口后進程卻不會退出。

      pyqt5借助QtDesigner設計圖形界面的思路

      利用QtDesignert軟件設計界面,并保存,然后通過pyuic5程序將ui文件轉換為py文件,最后編寫一個main.py文件,運行py文件并顯示。

      QT

      至少要安裝Py-Qt5和pyqt5-tools

      QTDesigner

      預覽快捷鍵 ctrl+r

      初次啟動會彈出這個“New Form”窗口,一般來說選擇“Main Window”然后點擊“Create”就可以了。

      Qt Designer已經(jīng)在Python3.5版本從PyQt5轉移到了tools,因此我們還需要安裝pyqt5-tools

      子線程不能調用主線程的QtGui類

      QStringListModel介紹

      我們這里使用了一個QListView來和 QStringListModel進行連接,這樣 QStringListModel的內容就會在QListView中顯示出來,任何對 QStringListModel的修改都會顯示在QListView中。這樣我們就可以達到數(shù)據(jù)存儲和顯示的分離,我們可以專注我們的數(shù)據(jù)部分( QStringListModel,只要我們定義好接口),顯示的部分就由QListView去負責,這就是QT的MVC(Model-View-Controller)機制,在MFC里也就是document和view。

      界面修改

      在主線程之外的線程更改界面

      獲取一個類實例的方法

      在這個類中定義靜態(tài)方法,返回其實例

      直接在要使用的類中傳入類的實例

      python中的類

      對象是類的實例

      加了self的變量或者方法,只有實例才能調用

      調用類的方法:C.fun()

      調用類的實例的方法:c().fun()

      一般類大小,實例小寫(首字母)。比如類叫DataParse,那么實例一般叫dataParse。

      普通繼承方式和super繼承方式單次繼承的話沒什么大區(qū)別。【多次繼承super優(yōu)勢比較明顯】

      類中的下劃線

      單下劃線、雙下劃線、頭尾雙下劃線說明:foo: 定義的是特殊方法,一般是系統(tǒng)定義名字 ,類似 init() 之類的。

      _foo: 以單下劃線開頭的表示的是 protected 類型的變量,即保護類型只能允許其本身與子類進行訪問,不能用于 from module import *

      __foo: 雙下劃線的表示的是私有類型(private)的變量, 只能是允許這個類本身進行訪問了。

      HTTP

      403 - Forbidden

      404 - Not Found

      500 - Internal Server Error

      502 - Bad Gateway

      503 - Service Unavailable

      exec_和show區(qū)別

      若使用exec_()的話,那么顯示出來的注冊界面就是模態(tài)的,意思就是當前只能對該注冊界面進行操作,只有關閉了該界面才能對其他界面進行操作;若使用show()的話,那注冊界面就是非模態(tài)的,則在顯示了注冊界面后,還能同時對登錄界面進行操作(QDialog有exec_()方法,而QWidget沒有)。

      槽函數(shù)如果帶參數(shù)

      槽函數(shù)帶參數(shù),需要用lambda表達式進行處理

      eg:self.ui.checkBoxRadarLeftFront.stateChanged.connect(lambda: self.playRadarPos(self.ui.checkBoxRadarLeftFront))

      pyqt5

      . setWindowTitle()方法可以設置窗口標題

      setAlignment(Qt.AlignCenter)可以讓QLabel控件在窗口中居中顯示【更方便】

      居中對齊還有:self.h_layout.addStretch(1)

      事件處理

      常用的包括窗口關閉事件處理、鼠標事件處理以及鍵盤事件處理

      記得最后加上 accept 或者 ignore

      ignoret()其實功能上就相當于pass

      關于休眠

      中斷不能休眠

      線程可以休眠

      關于None和False的一點對比

      None、空列表[]、空字典{}、空元組()、0等一系列代表空和無的對象會被轉換成False

      但是None和[]不是一回事?。?!

      frames = [] if not frames: print("000") else: print("111") if frames == None: print("222") else: print("333")

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      問題記錄

      pyqtSignal的參數(shù)應該是list

      并行視頻顯示,提示'NoneType' object has no attribute 'width'解決辦法

      incr拋出幾個信號量由下面的線程決定

      圖片資源

      播放卡,注意是多少時間放一次

      控件不能拉伸?

      【python版QT學習】pyQT5上位機實戰(zhàn)筆記

      布局的緣故?

      pycharm 報錯Try to run this command from the system terminal. Make sure that you use the correct version of 'pip' installed for your Python interpreter located at 'D:\Python\Python38-32\python.exe'.(參考1 或者 參考2)

      打開cmd命令行,或者PowerShell終端

      進入python.exe所在文件夾(如果設置了PATH,可以在任意目錄下操作)

      設置源:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

      更新pip:python -m pip install --upgrade pip

      下載某個包:pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple

      或者python.exe -m pip install xxx -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

      AttributeError: module ‘serial’ has no attribute 'Serial’解決辦法

      類實例作為“某個函數(shù)”的形式參數(shù)

      在這個“某個函數(shù)”改變類實例的成員,實際參數(shù)也是會改變的!

      class ServerFileNode: def __init__(self): self.radar = 1 class yFunction: def __init__(self, serverFileNode): self.serverFileNode = serverFileNode self.serverFileNode.radar = self.serverFileNode.radar + 1 serverFileNode = ServerFileNode() yFunction(serverFileNode) print(serverFileNode.radar)

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      pyqt5-對文本樣式進行操作

      參考

      環(huán)境配置,快速上手HelloWorld

      pycharm+PyQt5+python最新開發(fā)環(huán)境配置,踩坑過程詳解

      用Python寫個上位機學習系列之第一個界面的設計 - pyqt5、pycharm、QtDesigner

      pycharm配置

      PyCharm安裝配置Qt Designer+PyUIC教程

      PyQt5 圖形界面-用Qt Designer來設計UI界面,并轉化為python代碼運行 (詳細)

      用Python寫個上位機學習系列之第一個界面的設計 - 參考這里面的main.py程序

      PyQt5(designer)入門教程

      PyQt5(designer)入門教程2020

      PyQt5教程

      PyCharm+QTDesigner+PyUIC使用教程 - 非mainwindow的按鈕點擊

      程序中的一些函數(shù)記錄

      python3 基礎

      言簡意賅python系列—if not x: 和 if x is not None: 和 if not x is None: 的區(qū)別

      Python3 基本數(shù)據(jù)類型

      python集合增加數(shù)據(jù)的操作方法

      Python 內置函數(shù)

      Python3 print 函數(shù)用法總結

      Python set() 函數(shù)

      Python time sleep()方法

      json.dumps()和json.loads()

      Python3 find()方法

      Python find()方法

      Python lambda介紹

      Python format 格式化函數(shù)

      給大家?guī)硪黄猵ython with as的用法

      python使用with as 讀寫文件

      get函數(shù)和get_nowait函數(shù)

      python的for in if 列表推導式用法

      pyhton (for in if)用法

      Python中關于列表推導式(與循環(huán)和條件判斷結合時)常會出現(xiàn)的問題

      python中self

      python中的面向對象

      Python進階-----靜態(tài)方法(@staticmethod)

      python中的self - 簡明版

      一篇文章讓你徹底搞清楚Python中self的含義

      python中的繼承

      關于Python中的類普通繼承與super函數(shù)繼承

      Python 子類繼承父類構造函數(shù)說明 - 菜鳥教程

      Python學習筆記(4)Python中super的用法

      python init()構造器中的super()使用用法

      【Python】python 普通繼承方式和super繼承方式

      菜鳥教程python教程super

      python中網(wǎng)絡請求

      Python使用requests發(fā)送post請求

      urllib.request詳細介紹

      HTTP 返回狀態(tài)碼

      ImportError most likely due to a circular import 解決辦法

      python編寫代碼circular import問題

      解決循環(huán)import的問題

      python 循環(huán)依賴問題

      ImportError: cannot import name ‘db‘ from partially initialized module ‘a(chǎn)pp‘ (most likely due to a c

      pyqt5界面相關

      PyQt5高清屏幕自適應設置 QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)

      PyQt5中sys.argv和sys.exit(app.exec_())

      PyQt中主函數(shù)app=QApplication(sys.argv) sys.exit(app.exec_())的作用

      PyQt5系列教程(78):QSS入門3

      PyQt(Python+Qt)學習隨筆:模式窗口的windowModality屬性與modal屬性

      Qt模態(tài)界面設置setWindowModality禁止其他界面響應

      PyQt5布局管理之QGridLayout - setLayout - addWidget

      【Python】【PyQt5】addwidget的參數(shù)設置

      Python基礎之PyQt5關閉界面 - self.close

      pyqt5-實時刷新頁面(QApplication.processEvents())

      Pyqt QApplication.processEvents() 防止頁面鎖死

      QT窗體大小——setGeometry 和 resize區(qū)別

      PyQt5布局管理之QGridLayout

      QLineEdit使用詳解

      QTextEdit 實現(xiàn) QLineEdit 的 setPlaceholderText() 和 setMaxLength ()函數(shù)

      PyQt(Python+Qt)學習隨筆:gridLayout的layoutRowMinimumHeight和layoutColumnMinimumWidth屬性

      PyQt5基本控件詳解之QMessageBox

      QT實驗分析教程 Qt中的坐標系統(tǒng) — geometry,frameGeometry()

      qlabel 詳解 - clear

      Qt 之 QLabel - clear

      鼠標相關

      窗口跟隨鼠標移動

      PyQt5編程:鼠標事件1

      PyQt5編程-鼠標事件2

      QT類之事件mousePressEvent以及mouseMoveEvent

      多線程

      Python3 多線程 - threading.Thread; Queue

      Python中如何清空Queue?

      Python隊列的三種隊列實現(xiàn)方法

      Python threading中event的使用

      python之event事件

      Python多線程-Event(事件對象)

      Python threading中l(wèi)ock的使用

      字節(jié)串

      Python bytes類型及用法

      啟動界面

      PyQt5編程(5):啟動界面QSplashScreen

      Qt學習16——程序啟動畫面QSplashScreen

      勤奮的小青蛙 - PyQt SplashScreen示例,PyQt啟動界面演示

      model/view介紹入門

      QStringListModel的簡單使用

      Qt QStandardItemModel用法(超級詳細)

      pyqt QStandardItemModel()清空數(shù)據(jù)

      WindowFlags

      PyQt中WindowFlags使用詳解

      無邊框窗口FramelessWindowHint實現(xiàn)移動和縮放功能

      關于字體

      Qt 之字體設置(QFont)詳解

      關于右鍵菜單

      PyQt5 右鍵菜單Context Menu 彈出的方法

      PyQt5 之右鍵菜單

      PyQt5 系統(tǒng)化學習: 表格與樹

      PyQt5中彈出框QDialog的show()和exec()的區(qū)別

      PyQt5 右鍵菜單Context Menu 彈出的方法

      關于顯示圖片

      PyQt5 QPixmap簡介

      QT中QImage類

      關于繪圖

      【Python】 【繪圖】plt.figure()的使用

      matplotlib(二):畫布(figure)與坐標軸(axes)的布局

      matplotlib畫圖系列之設置柵格,axes脊柱(坐標軸),背景顏色

      matplotlib命令與格式:tick_params參數(shù)刻度線樣式設置

      表單控件 QTableWidget

      PyQt5 QTableWidget(表單控件)自適應窗口大小、欄位大小調整及布局

      Pyqt5之QTableWidget隱藏表頭和設置行列名稱

      QLabel

      Qt學習:QLabel的用法及其程序示例

      EventFilter

      PyQt學習隨筆:應用中通過installEventFilter安裝重寫的eventFilter捕獲應用事件的方法

      PyQt里的EventFilter

      pyqt5 事件event 過濾 installEventFilter eventFilter QEvent.MetaCall

      opencv

      學習opencv之cvtColor

      cv2.imread()和cv2.cvtColor() 的使用

      CNN編程中的問題——img.shape[0]、[1]、[2]到底代表什么

      機器學習進階-圖像基本操作-數(shù)值計算 1.cv2.add(將圖片進行加和) 2.cv2.resize(圖片的維度變換) 3.cv2.addWeighted(將圖片按照公式進行重疊操作)

      彩色圖像技術重要函數(shù)cv2.addWeighted()

      Python-OpenCV 圖像疊加or圖像混合加權(cv2.addWeighted)

      介紹OpenCV的MAT和QT的Qimage

      #最全面# Python 中如何將 Pyqt5 下的 QImage 對象轉換成 PIL image 或 opencv MAT (numpy ndarray) 對象

      Python圖像庫PIL的類Image及其方法介紹

      利用python、tensorflow、opencv、pyqt5實現(xiàn)人臉實時簽到系統(tǒng)

      Python cv2.circle詳細介紹

      python opencv3 向圖像里寫字

      Pyhon利用OpenCV在圖片上顯示文字及保存

      Python 用 OpenCV 畫直線 (3)

      QTableView

      QTableView根據(jù)內容自動調整大小(resizeColumnToContents解決不了的)

      QTableView填充表格(函數(shù):setSectionResizeMode()和setStretchLastSection())

      QT表格的寬度自適應調整方法void setStretchLastSection ( bool stretch );

      QT表格的寬度自適應調整方法

      時間

      python之time和datetime的常用方法

      pyqtSignal

      關于PyQt5中自定義信號的幾點理解 - 傳入的參數(shù)

      《快速掌握PyQt5》第二章 信號與槽——裁判鳴槍與選手開跑

      HTTP

      HTTP: Request中的post和get區(qū)別

      知識點講解二:關于requests里的timeout()

      requests.post 小坑: 默認無超時,會阻塞

      Python Qt 網(wǎng)絡

      版權聲明:本文內容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內刪除侵權內容。

      上一篇:介紹WPS表格平均值求法
      下一篇:怎樣搜索文件中的關鍵詞(如何搜索文件中的關鍵字)
      相關文章
      亚洲人成自拍网站在线观看| 中文字幕精品三区无码亚洲| 精品国产_亚洲人成在线| 亚洲大香伊人蕉在人依线| 久久综合日韩亚洲精品色| 亚洲日韩精品无码专区网站| 亚洲?V无码乱码国产精品| 亚洲AV日韩精品一区二区三区| 精品国产亚洲AV麻豆| 综合偷自拍亚洲乱中文字幕| 国产精品无码亚洲一区二区三区| 亚洲精品国产精品| 亚洲国产成人精品无码区二本| 亚洲成aⅴ人片久青草影院按摩| 亚洲精品无码av中文字幕| 亚洲精品无码av中文字幕| 亚洲国产成人久久一区二区三区| 亚洲成a人无码亚洲成www牛牛| 亚洲AV色欲色欲WWW| 天天综合亚洲色在线精品| 亚洲欧洲国产成人综合在线观看| 亚洲日本中文字幕一区二区三区| 久久久久亚洲av成人无码电影| 国产成人麻豆亚洲综合无码精品| 亚洲日韩aⅴ在线视频| 亚洲AV永久无码精品一百度影院| 亚洲成在人天堂一区二区| 日韩精品一区二区亚洲AV观看| 亚洲老熟女@TubeumTV| 亚洲国产精品免费在线观看| 亚洲一区二区三区在线 | 亚洲国产成人高清在线观看| 国产v亚洲v天堂无码网站| 亚洲AV天天做在线观看| 亚洲另类自拍丝袜第1页| 亚洲色成人网站WWW永久四虎 | www亚洲精品少妇裸乳一区二区| 亚洲裸男gv网站| 亚洲αv在线精品糸列| 亚洲综合久久成人69| 亚洲综合色丁香婷婷六月图片|