[PyQt5][Python] 基礎教學入門

閱讀時間約 8 分鐘

以下是一個關於 PyQt5 基礎教學的簡單入門文,帶你一步步了解如何從零開始建立 PyQt5 應用程序。

1. 安裝 PyQt5

首先,確保你安裝了 PyQt5 庫。打開終端或命令提示符,輸入以下命令進行安裝:

pip install pyqt5

2. 建立最簡單的 PyQt5 應用程序

PyQt5 是一個用於製作桌面應用程序的強大 GUI 庫。這裡是一個最簡單的 PyQt5 應用,會顯示一個空白窗口。

raw-image

範例 1:建立簡單窗口

import sys
from PyQt5.QtWidgets import QApplication, QWidget

# 創建應用程序對象
app = QApplication(sys.argv)

# 創建窗口對象
window = QWidget()
window.setWindowTitle('我的第一個 PyQt5 程式')
window.resize(400, 300) # 設置窗口大小
window.show() # 顯示窗口

# 運行應用程序主循環
sys.exit(app.exec_())

程式解析:

  • QApplication:每個 PyQt5 應用程序都需要一個 QApplication 對象來管理應用的基本設置和事件。
  • QWidget:PyQt5 中的基礎 GUI 元素,所有的窗口、按鈕等都是 QWidget 的子類。
  • window.show():用來顯示窗口。
  • app.exec_():啟動事件循環。所有的 PyQt5 應用都需要這個函數來保持運行狀態,直到你關閉窗口。


3. 增加按鈕和標籤

我們可以在窗口中增加一些控件,比如按鈕和標籤。讓我們來看看如何在 PyQt5 窗口中放置這些控件。

範例 2:增加按鈕和標籤

raw-image
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout

# 創建應用程序對象
app = QApplication(sys.argv)

# 創建窗口
window = QWidget()
window.setWindowTitle('增加按鈕與標籤')

# 創建按鈕與標籤
button = QPushButton('按我')
label = QLabel('初始文字')

# 垂直布局
layout = QVBoxLayout()
layout.addWidget(label) # 增加標籤到布局
layout.addWidget(button) # 增加按鈕到布局

# 設置窗口布局
window.setLayout(layout)

# 顯示窗口
window.show()

# 運行應用程序主循環
sys.exit(app.exec_())

程式解析:

  • QPushButton:PyQt5 中的按鈕。
  • QLabel:顯示靜態文本或圖片的控件。
  • QVBoxLayout:垂直佈局,用來讓控件按順序排列。


4. 事件處理(按鈕點擊)

按鈕可以綁定事件來處理點擊動作。以下範例中,我們讓按鈕點擊後改變標籤的文字。

raw-image

點擊後改變標籤的文字

raw-image

範例 3:按鈕點擊改變標籤文字

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout

def on_button_click():
label.setText('按鈕已被點擊!')

# 創建應用程序對象
app = QApplication(sys.argv)

# 創建窗口
window = QWidget()
window.setWindowTitle('按鈕事件處理')

# 創建按鈕與標籤
button = QPushButton('按我')
label = QLabel('初始文字')

# 垂直布局
layout = QVBoxLayout()
layout.addWidget(label)
layout.addWidget(button)

# 設置窗口布局
window.setLayout(layout)

# 綁定按鈕點擊事件
button.clicked.connect(on_button_click)

# 顯示窗口
window.show()

# 運行應用程序主循環
sys.exit(app.exec_())

程式解析:

  • button.clicked.connect(on_button_click):綁定按鈕點擊事件到 on_button_click 函數。
  • on_button_click:這是當按鈕被點擊時執行的函數,它會改變標籤的文本。


5. 輸入框(QLineEdit)

我們還可以增加一個輸入框,讓使用者可以輸入文字。

raw-image

寫入,在按顯示輸入,就會將輸入的字元更新在上方的Label。

raw-image


範例 4:輸入框與按鈕互動

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QLineEdit, QVBoxLayout

def on_button_click():
text = line_edit.text() # 獲取輸入框的文字
label.setText(f'你輸入了: {text}')

# 創建應用程序對象
app = QApplication(sys.argv)

# 創建窗口
window = QWidget()
window.setWindowTitle('輸入框與按鈕')

# 創建按鈕、標籤與輸入框
button = QPushButton('顯示輸入')
label = QLabel('初始文字')
line_edit = QLineEdit()

# 垂直布局
layout = QVBoxLayout()
layout.addWidget(label)
layout.addWidget(line_edit)
layout.addWidget(button)

# 設置窗口布局
window.setLayout(layout)

# 綁定按鈕點擊事件
button.clicked.connect(on_button_click)

# 顯示窗口
window.show()

# 運行應用程序主循環
sys.exit(app.exec_())

程式解析:

  • QLineEdit:這是一個輸入框,使用者可以在其中輸入文字。
  • line_edit.text():這是用來獲取輸入框中內容的方法。

總結

這篇教學文帶你從最基礎的 PyQt5 應用程序入手,學習了如何建立窗口、增加按鈕與標籤、處理按鈕點擊事件,以及如何使用輸入框來和使用者互動。這些都是 PyQt5 的核心組件,了解了這些基礎後,你就可以開始建立更複雜的 GUI 應用程序。

avatar-img
121會員
204內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
先學習 HTML, CSS, JavaScript 基礎觀念, 再透過實作專案,慢慢熟悉不同的語法使用方式。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
Thumbnail
對於剛開始接觸Python的新手來說,無疑會在眾多執行環境中迷茫,不知道應該選擇哪一個比較好? 在這個情況下,我會推薦一個好的起點– Anaconda。現在,讓我們花費一分鐘的時間,我將引導你成功安裝Anaconda,並且正式開啟你在資料科學領域的旅程!
Thumbnail
成功加入Anytype之後就可以開始探索這一個開源的筆記軟體了^_^ 開始Anytype之前..... 1.刪除所有初始物件 2.思考自己的使用需求 3.不著急學會所有功能
在一次五天的年假中,我決定開始學習Python編程。雖然最初進展順利,但後來發現自己在解題和邏輯方面遇到了困難。經過思考後,我決定轉而學習C/C++,並且制定了一個計畫,希望成為一名後端工程師。這將需要挑戰我的時間管理能力。
Thumbnail
解決 setuptools 的問題: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. 解決方法 目前
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
先學習 HTML, CSS, JavaScript 基礎觀念, 再透過實作專案,慢慢熟悉不同的語法使用方式。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
Thumbnail
對於剛開始接觸Python的新手來說,無疑會在眾多執行環境中迷茫,不知道應該選擇哪一個比較好? 在這個情況下,我會推薦一個好的起點– Anaconda。現在,讓我們花費一分鐘的時間,我將引導你成功安裝Anaconda,並且正式開啟你在資料科學領域的旅程!
Thumbnail
成功加入Anytype之後就可以開始探索這一個開源的筆記軟體了^_^ 開始Anytype之前..... 1.刪除所有初始物件 2.思考自己的使用需求 3.不著急學會所有功能
在一次五天的年假中,我決定開始學習Python編程。雖然最初進展順利,但後來發現自己在解題和邏輯方面遇到了困難。經過思考後,我決定轉而學習C/C++,並且制定了一個計畫,希望成為一名後端工程師。這將需要挑戰我的時間管理能力。
Thumbnail
解決 setuptools 的問題: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. 解決方法 目前