分類

展開全部 | 收合全部

分類

展開全部 | 收合全部

【PyQt5】Day 1 – 安裝 PyQt,建立自己的第一支 PyQt5 程式

看完這篇文章你會得到的成果圖

這次是我初學 PyQt5 的一些筆記,
每天都學一點點,至於整理的部分就慢慢一個個來
畢竟知道 PyQt5 有很多東西XD

此篇文章的範例程式碼 github

https://github.com/howarder3/ironman2021_PyQt5_photoshop/tree/main/day01_install_and_hello

安裝

先安裝 PyQt5

新的方法 (之後到 OpenCV 章節時,可避免一些問題):

建議使用 conda 的方式安裝,

打開終端機的對應 conda 環境輸入

conda install pyqt 

舊的方法 (之後可能會有些問題)

打開終端機輸入

pip install PyQt5

至於前面步驟「可能」還有:

  • 安裝 python
  • 安裝 anaconda (optional,看你想不想要管理 python 環境)

這部分就先不多說明,網路已經很多好文章了!

範例程式碼

PyQt5 可以學習的東西太多了! 我一開始學也是超級混亂的!!!
所以我們慢慢來!
先什麼都不管,直接跑程式碼,至少我們要確認「有沒有安裝成功」!

複製以下程式碼,直接跑就對了

應該要「能正常執行」,不然就是你沒安裝成功 PyQt5

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot

def window():
   app = QApplication(sys.argv)
   widget = QWidget()

   textLabel = QLabel(widget)
   textLabel.setText("Hello World!")
   textLabel.move(110,85)

   widget.setGeometry(50,50,320,200)
   widget.setWindowTitle("PyQt5 Example")
   widget.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

執行

到這邊相信大家都懂了XD,就一如往常的執行這份 python 吧!
(檔名請自行更換)

python hello.py

結果

  • windows 版本

不論是任何版本,複製上面程式碼應該都要看到這個結果,
不然請再去檢查你的 PyQt5 為何沒有安裝成功!
(沒安裝成功的原因太多種了,這邊很難細述)

說明

之後還會有更詳細的說明,但是既然這邊都提到了還是要交代一下!

如果想看更詳細的說明,這邊可以先跳過,日後文章會再來細講

建立一個視窗應用,並且宣告一個 QWidget 物件

這邊基本上寫法不太會改

  • app 代表「系統」的視窗程式,
  • widger 代表一個 QWidget() 的物件 (我們開發的視窗)
app = QApplication(sys.argv)
widget = QWidget()

在 widget 新增一個文字物件

這邊我們使用的是 QLabel,之後會在細講這東西,
我們將這東西存入 textLabel 這個變數中,並且作了文字與位置的設定

textLabel = QLabel(widget)
textLabel.setText("Hello World!")
textLabel.move(110,85)

在 widget 設定視窗大小,設定標題名稱,並顯示於畫面上

這邊就是如何設定我們的 QWidget 視窗,

  • setGeometry 可以決定視窗大小
  • setWindowTitle 可以決定視窗名稱
  • show 將視窗顯示
widget.setGeometry(50,50,320,200)
widget.setWindowTitle("PyQt5 Example")
widget.show()

結束視窗應用

這邊是在偵測使用者呼叫的視窗是否有被關閉,
就是我們一般視窗「右上角(windows) 的叉叉」,偵測到關閉程式後,
讓程式順利結束運行,如果沒有這行就等於程式直接結束,
也不會等使用者把視窗關閉XD

sys.exit(app.exec_())

小結

到這邊,看起來很簡單(嗎?),不過這就是我們初探 PyQt5 的第一步囉!
(到這邊,距離大致掌握 PyQt5 還好遙遠… 太多東西要學了)

Reference

⭐Python PyQt5 相關文章整理⭐:
⭐基礎知識與架構篇⭐:
1.【PyQt5】Day 1 – 安裝 PyQt,建立自己的第一支 PyQt5 程式
2.【PyQt5】Day 2 – 利用 Qt designer 建立第一支有自己介面的 PyQt5 程式
3.【PyQt5】Day 4 – 重要的 Qt 程式邏輯觀念,務必先有此觀念後面才會懂自己在幹嘛
4.【PyQt5】Day 5 – 開始來設計我們的 controller.py,改以「程式角度」來說明如何建立 PyQt 的系統
⭐基本元件應用篇⭐:
1.【PyQt5】Day 6 – 我們的第一個 output 手段 – Qlabel
2.【PyQt5】Day 7 – 我們的第一個 input 手段 – QPushButton
3.【PyQt5】Day 8 – 我們的第二個 input 手段 – QLineEdit
4.【PyQt5】Day 9 – 以 QLineEdit, QTextEdit, QPlainTextEdit 作為文字的輸入
6.【PyQt5】Day 14 - 使用 QSlider 製作可拖曳的滑條
8.【PyQt5】Day 19 - 使用 QProgressBar,製作進度條的功能
⭐介面系統控制篇⭐:
5.【PyQt5】Day 10 – 以 QFileDialog 讀取系統的檔案、資料夾
7.【PyQt5】Day 18 / Project 使用 QTimer,自製碼表(計時器) PyQt5 stopwatch DIY
1.【PyQt5】Day 20 - PyQt 最重要的 QThread 概念 / 為什麼 windows, mac, ubuntu (linux) 程式會「沒有回應」?
2.【PyQt5】Day 21 – 透過 PyQt 實現滑鼠監聽總整理,完全掌握滑鼠控制 (listen mouse)
3.【PyQt5】Day 22 – PyQt 視窗的個性化/屬性控制 setWindowFlags,禁止放大縮小、永遠顯示於最上層/最下層
4.【PyQt5】Day 23 – 使用系統內建的調色盤 QColorDialog,來替我們選擇顏色 QColor (Color Picker)
5.【PyQt5】Day 24 / Project 偵測滑鼠目前指示顏色的小工具 (滴管工具), 利用 QCursor 偵測滑鼠, QApplication 取得截圖
⭐影像處理篇⭐:
1.【PyQt5】Day 11 – 以 Qlabel 在 PyQt 中顯示圖片 (基於 QImage 使用 OpenCV)
2.【PyQt5】Day 12 – 建立一個可以縮放圖片大小的顯示器 (基於 QImage 使用 OpenCV)
3.【PyQt5】Day 13 – 使用 QVBoxLayout, QscrollArea 製作出捲軸,以高解析度檢視圖片 (基於 QImage 使用 OpenCV)
4.【PyQt5】Day 15 / Project 與檔案功能整合,製作出可讀取圖片並可縮放的 UI 介面 (使用 PyQt + OpenCV)
5.【PyQt5】Day 16 - 在 PyQt5 中取得圖片座標 (滑鼠位置) mousePressEvent,觀察圖片在 Qt 中產生的方式,對原圖進行座標換算處理
6.【PyQt5】Day 17 / Project 製作標註 roi 工具, 開始導入 OpenCV 作為繪圖引擎, 在圖上畫點並顯示座標
⭐project 篇⭐:
1.【PyQt5】Day 25 / Project 自己做一個影片播放器 DIY video player (結合 PyQt + OpenCV)
2.【PyQt5】Day 26 / Project 替我們影片播放器增加一個顯示進度的滑條 video player add slider (與昨日 bottleneck 處理細節)
3.【PyQt5】Day 27 / Project 製作影片 ROI 標註工具 (PyQt 結合 OpenCV 在圖上畫點畫線)
4.【PyQt5】Day 28 / final project – 1 來搞一個自己的 photoshop 吧!UI 篇 + 純程式架構篇 (結合 PyQt + OpenCV)
5.【PyQt5】Day 29 / final project – 2 來搞一個自己的 photoshop 吧!後段程式細節篇 (結合 PyQt + OpenCV)
6.【PyQt5】Day 30 / final project – 3 來搞一個自己的 photoshop 吧!把每個方法封裝起來製作出還原功能吧! (結合 PyQt + OpenCV)
⭐打包程式篇⭐:
1.【PyQt5】Day 3 – 用 pyinstaller 將 python 程式打包,把每天的成果分享給你的親朋好友
⭐【喜歡我的文章嗎? 歡迎幫我按讚~ 讓基金會請創作者喝一杯咖啡!
如果喜歡我的文章,請幫我在下方【按五下Like】 (Google, Facebook 免註冊),會由 「LikeCoin」 贊助作者鼓勵繼續創作,讀者們「只需幫忙按讚,完全不用出錢」哦!

likecoin-steps
Howard Weng
Howard Weng

我是 Howard Weng,很多人叫我嗡嗡。這個網站放了我的各種筆記。希望這些筆記也能順便幫助到有需要的人們!如果文章有幫助到你的話,歡迎幫我點讚哦!
另外,因為定位是「個人的隨手筆記」,有些文章內容「⚠️可能我理解有誤⚠️」或「?只寫到一半?」,如果有發現這樣的情況,歡迎在該文章的最下面留言提醒我!我會儘快修正或補上!感謝大家的建議與幫忙,讓網站能變得更好?

文章: 890

★留個言吧!內容有誤或想要補充也歡迎與我討論!