建虛擬環境 python3 -m venv venv (取名為venv)
啟動虛擬環境 source venv/bin/activate 關閉 deactivate
(不知道為什麼在venv下會一直連不到qt所需的libraries)
import PyQt5.QtWidgets as qtw
import PyQt5.QtGui as qtg
class Pig4Window(qtw.QWidget):
def __init__(self):
super().__init__()
# 視窗標題
self.setWindowTitle("泥好")
# 設定目前這個視窗的layout為垂直排列(用來管理元件應該怎麼排列)
self.setLayout(qtw.QVBoxLayout())
# 創建標籤與標籤內容
my_label = qtw.QLabel("Day1 PyQt5")
# 改變標籤的文字大小
my_label.setFont(qtg.QFont('helvetica', 44))
self.layout().addWidget(my_label)
# 創建輸入框
my_entry = qtw.QLineEdit()
my_entry.setObjectName("name_field")
my_entry.setText("請輸入姓名")
self.layout().addWidget(my_entry)
# 新增按鈕
my_button = qtw.QPushButton("按我", clicked = lambda:press())
self.layout().addWidget(my_button)
# 顯示視窗
self.show()
def press():
# 按下按鈕會將輸入框的文字, 設成標籤的內容
my_label.setText(f'Hello {my_entry.text()}')
# 將輸入框的內容清空
my_entry.setText("")
app = qtw.QApplication([])
p4w = Pig4Window()
app.exec_()
成功執行畫面如下 :
輸入 Beginners 並且按下"按我"的按鈕, 畫面如下 :
import PyQt5.QtWidgets as qtw
import PyQt5.QtGui as qtg
class Pig4Window(qtw.QWidget):
def __init__(self):
super().__init__()
# 視窗標題
self.setWindowTitle("泥好選單")
# 設定目前這個視窗的layout為垂直排列(用來管理元件應該怎麼排列)
self.setLayout(qtw.QVBoxLayout())
# 創建標籤與標籤內容
my_label = qtw.QLabel("Day1 PyQt5")
# 改變標籤的文字大小
my_label.setFont(qtg.QFont('helvetica', 44))
self.layout().addWidget(my_label)
# 建立選單
my_combo = qtw.QComboBox(self)
# 新增選項再選單內
my_combo.addItem("OG", "OMG")
my_combo.addItem("banana", 666)
my_combo.addItem("gasoline", qtw.QWidget)
my_combo.addItem("paracede")
my_combo.addItem("cuke")
# 顯示選單
self.layout().addWidget(my_combo)
# 新增按鈕
my_button = qtw.QPushButton("按我", clicked = lambda:press())
self.layout().addWidget(my_button)
# 顯示視窗
self.show()
def press():
# 按下按鈕會將輸入框的文字, 設成標籤的內容
my_label.setText(f'選擇 {my_combo.currentText()}')
app = qtw.QApplication([])
p4w = Pig4Window()
app.exec_()
my_combo.currentData()
顯示選項的第二個參數my_combo.currentIndex()
顯示選單的索引值
成功執行畫面如下 :
選擇任一選項並且按下"按我"的按鈕, 假設我選"OG"畫面如下 :
第一次接觸PyQt5以上練習選單的內容,是因為最近在玩 schedule I 哈哈, 然後學習動機是因為之前面試被問到有沒有用過QT, 我還以為是什麼量化分析, 太丟臉了, 好啦明天繼續!