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)
最初のラベル labelA
は QtWidgets.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
に画像を表示します。QPixmap
は QtGui
のモジュールで、Qt
が使用する画像です。
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 ラベルの配置
ラベルテキストはデフォルトで左端に揃えられ、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
次の画像からわかるように、ラベルは配置プロパティに従って配置されています。