iT邦幫忙

0

[Day 1] PyQt5 從零學習筆記

  • 分享至 

  • xImage
  •  

建虛擬環境 python3 -m venv venv (取名為venv)
啟動虛擬環境 source venv/bin/activate 關閉 deactivate

(不知道為什麼在venv下會一直連不到qt所需的libraries)

目標

  1. 建立出一個輸入框, 接收文字並顯示回來
  2. 建立選單

建立輸入框

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_()

成功執行畫面如下 :
1
輸入 Beginners 並且按下"按我"的按鈕, 畫面如下 :
2

建立選單

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() 顯示選單的索引值
成功執行畫面如下 :
1
選擇任一選項並且按下"按我"的按鈕, 假設我選"OG"畫面如下 :
2

第一次接觸PyQt5以上練習選單的內容,是因為最近在玩 schedule I 哈哈, 然後學習動機是因為之前面試被問到有沒有用過QT, 我還以為是什麼量化分析, 太丟臉了, 好啦明天繼續!


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言