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

胡金庫 2023年1月30日
  1. PyQt5 ラベルウィジェット QLabel
  2. PyQt5 QLabel フォントの設定
  3. PyQt5 ラベルの配置
PyQt5 チュートリアル - ラベル Label

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

PyQt5 ラベルウィジェット QLabel

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

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 フォントの設定

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

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 ラベルの配置

著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook