PyQt5 Development

PyQt5 QLabel完全マスターガイド

Spread the love

PyQt5 QLabel完全ガイド

QLabelウィジェットはPyQt5 GUI開発の基盤であり、テキストや画像を表示するシンプルながらも汎用性の高い方法を提供します。このチュートリアルでは、その機能を詳しく解説し、実践的な例とベストプラクティスを提供することで、あなたのPyQt5スキルを向上させます。

目次

  1. QLabelウィジェットの作成と表示
  2. テキストのスタイル設定:フォント、色、HTML
  3. 正確なテキスト配置
  4. QLabelによる画像表示
  5. 単語の折り返しとテキストサイズの調整
  6. 高度なテクニック:シグナルとスロット

1. QLabelウィジェットの作成と表示

テキストを表示する基本的なQLabelの作成から始めましょう。これは、QLabelクラスのインスタンスを作成し、その親ウィジェットを設定する作業を含みます。


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Hello, PyQt5!", window)
label.show()
window.show()
sys.exit(app.exec_())

このコードスニペットは、「Hello, PyQt5!」というテキストが表示されたシンプルなウィンドウを作成します。QLabelQWidgetの子であり、ウィンドウ内での適切な表示を保証します。

2. テキストのスタイル設定:フォント、色、HTML

単純なテキスト表示以外にも、QLabelの外観を大幅にカスタマイズできます。フォントスタイル、色の変更、リッチテキストフォーマットのためのHTMLの使用について見ていきましょう。


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QFont, QColor

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Hello, PyQt5!", window) # HTMLを使った太字テキスト
label.setFont(QFont('Arial', 14))
label.setStyleSheet("color: rgb(0, 128, 0);") # 緑色のテキスト

label.show()
window.show()
sys.exit(app.exec_())

この例では、スタイルシートを使用して、特定のフォント(Arial、サイズ14)と緑色を設定する方法を示しています。ラベルのテキスト内の太字テキストにはHTMLタグ()を使用していることに注意してください。

3. 正確なテキスト配置

setAlignment()メソッドとQtの配置フラグを使用して、QLabel内のテキストの位置を制御します。


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Centered Text", window)
label.setAlignment(Qt.AlignCenter)  # 中央配置

label.show()
window.show()
sys.exit(app.exec_())

これによりテキストが中央に配置されます。Qt.AlignRightQt.AlignTopQt.AlignBottom、およびそれらの組み合わせなどの他のフラグを調べて、きめ細かい制御を行ってください。

4. QLabelによる画像表示

QLabelはテキストだけでなく、画像も表示できます。QPixmapオブジェクトを使用してsetPixmap()メソッドを使用します。


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
pixmap = QPixmap('path/to/your/image.png')  # 画像のパスに置き換えてください
label = QLabel(window)
label.setPixmap(pixmap)
label.setAlignment(Qt.AlignCenter)
label.show()
window.show()
sys.exit(app.exec_())

'path/to/your/image.png'を実際の画像ファイルのパスに置き換えることを忘れないでください。

5. 単語の折り返しとテキストサイズの調整

長いテキスト文字列の場合、テキストがラベルの境界を超えるのを防ぐために、単語の折り返しを有効にします。テキストに合わせてラベルのサイズポリシーを調整することもできます。


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("This is a long text string that needs word wrapping.", window)
label.setWordWrap(True)  # 単語の折り返しを有効にする
label.adjustSize()       # テキストに合わせてラベルのサイズを調整する

label.show()
window.show()
sys.exit(app.exec_())

setWordWrap(True)で単語の折り返しが有効になり、adjustSize()により、ラベルが折り返されたテキストに合わせて自動的にサイズ変更されます。

6. 高度なテクニック:シグナルとスロット

QLabelはシグナルを発行でき、アプリケーションの他の部分とのインタラクションを可能にします。たとえば、ラベルがクリックされたときにアクションを実行するために、シグナルをスロットに接続できます。

(mousePressEventを使った例は簡潔にするため省略していますが、PyQt5のドキュメントで簡単に確認できます)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です