PyQt5 チュートリアル - ラベル Label

  1. PyQt5 ラベルウィジェット QLabel
  2. PyQt5 QLabel フォントの設定
  3. PyQt5 ラベルの配置

このチュートリアルでは、PyQt5 ラベルウィジェット QLabel の使用方法を学習します。

PyQt5 ラベルウィジェット QLabel

ウィンドウに 2つのラベルを追加します。これらのラベルの 1つはテキストを使用し、1つのラベルは画像を使用します。

QLabel.py
import sys
from PyQt5 import QtWidgets, QtGui

def basicWindow():
    app = QtWidgets.QApplication(sys.argv)
    windowExample = QtWidgets.QWidget()
    labelA = QtWidgets.QLabel(windowExample)
    labelB = QtWidgets.QLabel(windowExample)
    labelA.setText('Label Example')
    labelB.setPixmap(QtGui.QPixmap('python.jpg'))
    windowExample.setWindowTitle('Label Example')
    windowExample.setGeometry(100, 100, 300, 200)
    labelA.move(100, 40)
    labelB.move(120, 120)
    windowExample.show()
    sys.exit(app.exec_())

basicWindow()
labelA = QtWidgets.QLabel(w)

最初のラベル labelAQtWidgets.QtLabel で、QtWidgets ウィジェット w は括弧内にあります。これは、ラベルがウィンドウ w に追加されることをプログラムに伝えるためです。

labelA.setText('Label Example')

labelA.setText はラベルにテキストを設定します。

windowExample.setGeometry(100, 100, 300, 200)

ウィンドウサイズを (300, 200) に設定し、左上隅の座標を (100, 100) に設定します。前のセクションsetGeometry 説明を参照できます。

labelA.move(100, 40)
labelB.move(120, 120)

move() メソッドは、ラベルを右下の方向に移動します。labelA.move(100, 40) のように、labelA をウィンドウの左上隅を基準に座標を (100, 40) に移動します。

labelB.setPixmap(QtGui.QPixmap('globe.png'))

labelB に画像を表示します。QPixmapQtGui のモジュールで、Qt が使用する画像です。

PyQt5 ラベル

PyQt5 QLabel フォントの設定

上記の例では、ラベルウィジェットでデフォルトのフォントを使用しています。ラベルテキストのサイズ、太さ、フォントファミリなどのフォントを指定できます。

QLabel_Set Font.py
import sys
from PyQt5 import QtWidgets, QtGui

def basicWindow():
    app = QtWidgets.QApplication(sys.argv)
    windowExample = QtWidgets.QWidget()
    labelA = QtWidgets.QLabel(windowExample)
    labelB = QtWidgets.QLabel(windowExample)
    labelA.setText('Times Font')
    labelA.setFont(QtGui.QFont("Times", 12, QtGui.QFont.Bold))
    labelB.setText('Arial Font')
    labelB.setFont(QtGui.QFont("Arial", 14, QtGui.QFont.Black))
    windowExample.setWindowTitle('Label Example')
    windowExample.setGeometry(100, 100, 300, 200)
    labelA.move(100, 40)
    labelB.move(100, 120)
    windowExample.show()
    sys.exit(app.exec_())

basicWindow()
labelA.setFont(QtGui.QFont("Times", 12, QtGui.QFont.Bold))

setFont() メソッドは、ラベルのフォントを設定します。この QFont クラスは、特定の属性を持つフォントを指定します。

PyQt5 ラベルセットフォント

PyQt5 ラベルの配置

ラベルテキストはデフォルトで左端に揃えられ、QLabel.setAlignment() メソッドを使用して配置を設定できます。

import sys
from PyQt5 import QtWidgets, QtGui, QtCore

def basicWindow():
    app = QtWidgets.QApplication(sys.argv)
    windowExample = QtWidgets.QWidget()

    labelLeft = QtWidgets.QLabel(windowExample)
    labelRight = QtWidgets.QLabel(windowExample)
    labelCenter = QtWidgets.QLabel(windowExample)

    labelLeft.setText('Left Align')
    labelRight.setText('Right Align')
    labelCenter.setText('Center Align')

    windowExample.setWindowTitle('Label Align Example')
    windowExample.setGeometry(100, 100, 300, 200)

    labelLeft.setFixedWidth(160)
    labelRight.setFixedWidth(160)
    labelCenter.setFixedWidth(160)

    labelLeft.setStyleSheet("border-radius: 25px;border: 1px solid black;")
    labelRight.setStyleSheet("border-radius: 25px;border: 1px solid black;")
    labelCenter.setStyleSheet("border-radius: 25px;border: 1px solid black;")

    labelLeft.setAlignment(QtCore.Qt.AlignLeft)
    labelRight.setAlignment(QtCore.Qt.AlignRight)
    labelCenter.setAlignment(QtCore.Qt.AlignCenter)
    
    labelLeft.move(80, 40)
    labelRight.move(80, 80)
    labelCenter.move(80, 120)    
    
    windowExample.show()
    sys.exit(app.exec_())

basicWindow()
labelLeft.setFixedWidth(160)
labelRight.setFixedWidth(160)
labelCenter.setFixedWidth(160)

3つのラベルを固定幅 160 に設定します。設定しないの場合、ラベル幅はラベルテキストの長さに従って自動的に設定されます。

labelLeft.setStyleSheet("border-radius: 25px;border: 1px solid black;")

CSS のようなスタイルシートを使用して、PyQt5 ウィジェットのスタイルを設定できます。ここでは、ラベルの境界線は純粋な黒に設定され、境界線は 1px、境界線の半径は 25px に指定されています。

labelLeft.setAlignment(QtCore.Qt.AlignLeft)
labelRight.setAlignment(QtCore.Qt.AlignRight)
labelCenter.setAlignment(QtCore.Qt.AlignCenter)

ウィジェットの配プロパティは setAlignment メソッドによって設定され、そのオプションは PyQt5.QtCore.Qt ジュールにあります。

  • PyQt5.QtCore.Qt.AlignLeft
  • PyQt5.QtCore.Qt.AlignRight
  • PyQt5.QtCore.Qt.AlignCenter

次の画像からわかるように、ラベルは配置プロパティに従って配置されています。

PyQt5 ラベルの配置

comments powered by Disqus