iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
Python

一些Python可以做的事系列 第 2

[Python] QLabel 跟 QPushButton

  • 分享至 

  • xImage
  •  

QLabel 是 PyQt5 裡用來建立文字或圖片的標籤元件,這篇會介紹如何在 PyQt5 視窗裡加入 QLabel 標籤,並進行像是文字字型、大小、顏色和位置

加入 QLabel 標籤

透過 QtWidgets.QLabel(widget) 方法,建立標籤

加入 QPushButton 按鈕

透過 QtWidgets.QPushButton(widget) 方法,建立按鈕

QLabel 跟 QPushButton 位置常用設定

  1. move(x,y) : 放在的父元件中的 xy 座標,x 往右為正,y 往下為正,尺寸根據內容自動延伸
  2. setGeometry(x,y,w,h) : 放在的父元件中的 xy 座標和長寬尺寸,x 往右為正,y 往下為正,如果超過長寬尺寸,預設會被裁切無法顯示
  3. setContentsMargins(左,上,右,下) : QLabel 的邊界寬度

QLabel 文字設定

  1. setWordWrap(bool) : 是否換行 ( True: 換 , False : 不換 )
  2. setAlignment(QtCore.Qt.Align) : 對齊方式
    • QtCore.Qt.AlignLeft : 向左對齊(預設)
    • QtCore.Qt.AlignCenter : 置中
    • QtCore.Qt.AlignRight : 向右對齊
  3. setFont(QtGui.QFont()) : 文字樣式設定,要搭配 QtGui.QFont()
    • font.setFamily(name) : 字體名稱
    • setPointSize(int) : 字體大小
    • setBold(bool) : 是否粗體,預設 False 代表沒有粗體
    • setItalic(bool) : 是否斜體,預設 False 代表沒有斜體
    • setStrikeOut(bool) : 是否加入刪除線,預設 False 代表沒有加入刪除線
    • setUnderline(bool) : 是否加入底線,預設 False 代表沒有加入底線

使用 StyleSheet 設定 QLabel 跟 QPushButton 樣式

如果會使用網頁 CSS 語法,也可以透過 setStyleSheet() 設定 QLabel 樣式(但不包含CSS3語法)

實作

from PyQt5 import QtWidgets, QtCore
import sys

# 建立視窗
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
MainWindow.setObjectName("MainWindow")
MainWindow.setWindowTitle("Hello")
MainWindow.resize(600, 800)

# 在 MainWindow 裡加入標籤
label1 = QtWidgets.QLabel(MainWindow)
label1.setText('hello world,hi ho hi')   # 設定標籤文字
label1.setWordWrap(True)  # 文字換行
label1.setGeometry(150,300 ,200 , 150)

# 使用 StyleSheet 設定 QLabel 樣式
label1.setStyleSheet('''
    background:#fff;
    color:#f00;
    font-size:24px;
    font-weight:bold;
    border:2px dashed #000;
    padding:20px;
''')

# 設置文字居中對齊
label1.setAlignment(QtCore.Qt.AlignCenter)

# 在 MainWindow 裡加入一個 QPushButton
pushButton = QtWidgets.QPushButton(MainWindow)
pushButton.setGeometry(QtCore.QRect(250, 350, 100, 100))
pushButton.setObjectName("pushButton")
pushButton.setText("Button")

# 使用 StyleSheet 設定  QPushButton 樣式
pushButton.setStyleSheet('''
    background:#B8860B;
    color:#000;
    font-size:20px;
    border:2px dashed #000;
    padding:20px;
''')

# 顯示主視窗
MainWindow.show()
sys.exit(app.exec_())

畫面

https://ithelp.ithome.com.tw/upload/images/20240811/20168345hFIaqPkAXx.png

參考資料
https://steam.oxxostudio.tw/category/python/pyqt5/qlabel.html#google_vignette


上一篇
[Python] PyQt5
下一篇
[Python] QRadioButton 單選按鈕
系列文
一些Python可以做的事19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言