このページでは

QLabel Class

QLabel ウィジェットは、テキストや画像を表示します。詳細...

ヘッダー: #include <QLabel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承元: QFrame

プロパティ

パブリック関数

QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
virtual ~QLabel()
Qt::Alignment alignment() const
QWidget *buddy() const
bool hasScaledContents() const
bool hasSelectedText() const
int indent() const
int margin() const
QMovie *movie() const
bool openExternalLinks() const
(since 6.0) QPicture picture() const
QPixmap pixmap() const
(since 6.1) QTextDocument::ResourceProvider resourceProvider() const
QString selectedText() const
int selectionStart() const
void setAlignment(Qt::Alignment)
void setBuddy(QWidget *buddy)
void setIndent(int)
void setMargin(int)
void setOpenExternalLinks(bool open)
(since 6.1) void setResourceProvider(const QTextDocument::ResourceProvider &provider)
void setScaledContents(bool)
void setSelection(int start, int length)
void setTextFormat(Qt::TextFormat)
void setTextInteractionFlags(Qt::TextInteractionFlags flags)
void setWordWrap(bool on)
QString text() const
Qt::TextFormat textFormat() const
Qt::TextInteractionFlags textInteractionFlags() const
bool wordWrap() const

再実装されたパブリック関数

virtual int heightForWidth(int w) const override
virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

パブリックスロット

void clear()
void setMovie(QMovie *movie)
void setNum(int num)
void setNum(double num)
void setPicture(const QPicture &picture)
void setPixmap(const QPixmap &)
void setText(const QString &)

シグナル

void linkActivated(const QString &link)
void linkHovered(const QString &link)

再実装されたプロテクト関数

virtual void changeEvent(QEvent *ev) override
virtual void contextMenuEvent(QContextMenuEvent *ev) override
virtual bool event(QEvent *e) override
virtual void focusInEvent(QFocusEvent *ev) override
virtual bool focusNextPrevChild(bool next) override
virtual void focusOutEvent(QFocusEvent *ev) override
virtual void keyPressEvent(QKeyEvent *ev) override
virtual void mouseMoveEvent(QMouseEvent *ev) override
virtual void mousePressEvent(QMouseEvent *ev) override
virtual void mouseReleaseEvent(QMouseEvent *ev) override
virtual void paintEvent(QPaintEvent *) override

詳細な説明

ラベル

QLabel は、テキストや画像を表示するために使用されます。ユーザー操作機能は提供されていません。ラベルの外観はさまざまな方法で設定でき、他のウィジェットのフォーカス用ニーモニックキーを指定するためにも使用できます。

QLabelには、以下のいずれかのコンテンツタイプを含めることができます:

コンテンツ設定
プレーンテキストQString をsetText()に渡します。
リッチテキストリッチテキストを含むQString をsetText()に渡します。
ピクマップQPixmap をsetPixmap() に渡します。
ムービーQMovie をsetMovie() に渡します。
数値intまたはdoubleをsetNum() に渡すと、その数値がプレーンテキストに変換されます。
なし空のプレーンテキストと同じです。これがデフォルトです。clear() によって設定されます。

警告: QString をコンストラクタに渡す場合や setText() を呼び出す場合は 、入力のサニタイズを必ず行ってください。QLabel は、テキストをプレーンテキストとして表示するか、HTML 4 マークアップのサブセットであるリッチテキストとして表示するかを推測しようとするためです。 たとえば、テキストがプレーン形式であると予想されるものの、テキストのソースを制御できない場合(Web から読み込んだデータを表示する場合など)には、setTextFormat() を明示的に呼び出すことをお勧めします。

これらの関数のいずれかを使用してコンテンツが変更されると、以前のコンテンツはすべて消去されます。

デフォルトでは、ラベルはleft-aligned, vertically-centered のテキストと画像を表示し、表示されるテキスト内のタブはautomatically expanded として扱われます。ただし、QLabel の外観は、いくつかの方法で調整および微調整することができます。

QLabel ウィジェット領域内でのコンテンツの位置は、setAlignment() およびsetIndent() を使用して調整できます。また、setWordWrap() を使用すると、テキストコンテンツを単語の区切りで改行させることができます。たとえば、次のコードは、右下隅に 2 行のテキスト(両行ともラベルの右端に揃っている)を表示するサンクンパネルを設定しています。

QLabel *label = new QLabel(this);
label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
label->setText("first line\nsecond line");
label->setAlignment(Qt::AlignBottom | Qt::AlignRight);

QLabel がQFrame から継承するプロパティや関数も、任意のラベルに使用するウィジェットのフレームを指定するために利用できます。

QLabelは、インタラクティブなウィジェットのラベルとしてよく使用されます。この用途のために、QLabelは、キーボードフォーカスを別のウィジェット(QLabelの「バディ」と呼ばれる)に移すためのニーモニック(QKeySequence を参照)を追加する便利な仕組みを提供しています。例えば:

QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);

この例では、ユーザーが Alt+P を押すと、キーボードフォーカスがラベルのバディ(QLineEdit )に移ります。バディがボタン(QAbstractButton を継承したもの)である場合、ニーモニックをトリガーするとボタンのクリックがエミュレートされます。

QLineEdit 、QTextEdit 、QPixmap 、およびQMovieも参照してください 。

プロパティのドキュメント

alignment : Qt::Alignment

このプロパティは、ラベルの内容の配置を指定します。

デフォルトでは、ラベルの内容は左揃えで、縦方向には中央揃えになります。

アクセス関数:

Qt::Alignment alignment() const
void setAlignment(Qt::Alignment)

関連項目: text 。

[read-only] hasSelectedText : bool

このプロパティは、テキストが選択されているかどうかにかかわらず成立します

hasSelectedText() は、ユーザーによってテキストの一部またはすべてが選択されている場合、true を返し、そうでない場合はfalse を返します。

デフォルトでは、このプロパティは `false` です。

注:ラベルに設定されたtextInteractionFlags には、TextSelectableByMouseまたはTextSelectableByKeyboardのいずれかが含まれている必要があります。

アクセス関数:

bool hasSelectedText() const

関連項目: selectedText()。

indent : int

このプロパティは、ラベルのテキストのインデント(ピクセル単位)を保持します。

ラベルにテキストが表示されている場合、alignment() がQt::AlignLeft の場合は左端に、alignment() がQt::AlignRight の場合は右端に、alignment() がQt::AlignTop の場合は上端に、alignment() がQt::AlignBottom の場合は下端に、インデントが適用されます。

indent が負の値の場合、または indent が設定されていない場合、ラベルは次のように実効インデントを計算します。frameWidth() が 0 の場合、実効インデントは 0 になります。frameWidth() が 0 より大きい場合、実効インデントはウィジェットの現在のfont() の「x」文字の幅の半分になります。

デフォルトでは、インデントは-1に設定されており、これは有効インデントが上記の方法で計算されることを意味します。

アクセス関数:

int indent() const
void setIndent(int)

関連項目: alignment、margin 、frameWidth()、およびfont()。

margin : int

このプロパティは、マージンの幅を指定します。

マージンとは、フレームの最内側のピクセルとコンテンツの最外側のピクセルとの間の距離のことです。

マージンのデフォルト値は 0 です。

アクセス関数:

int margin() const
void setMargin(int)

関連項目: indent 。

QLabel が、linkActivated()シグナルを発生させる代わりに、QDesktopServices::openUrl()を使用してリンクを自動的に開くかどうかを指定します。

注:ラベルに設定されたtextInteractionFlags には、LinksAccessibleByMouseまたはLinksAccessibleByKeyboardのいずれかが含まれている必要があります。

デフォルト値は false です。

アクセス機能:

bool openExternalLinks() const
void setOpenExternalLinks(bool open)

textInteractionFlags()も参照してください 。

pixmap : QPixmap

このプロパティには、ラベルのピクマップが格納されます。

ピクマップを設定すると、それまでの内容はすべて消去されます。バディショートカットがある場合は、無効になります。

アクセス関数:

QPixmap pixmap() const
void setPixmap(const QPixmap &)

scaledContents : bool

このプロパティは、ラベルが利用可能なスペース全体を埋めるように内容を拡大縮小するかどうかを指定します。

このプロパティが有効で、ラベルがピクマップを表示している場合、ピクマップは利用可能なスペースを埋めるように拡大縮小されます。

このプロパティのデフォルト値は false です。

アクセス関数:

bool hasScaledContents() const
void setScaledContents(bool)

[read-only] selectedText : QString

このプロパティには、選択されたテキストが格納されます。

選択されたテキストがない場合、このプロパティの値は空の文字列になります。

デフォルトでは、このプロパティには空の文字列が含まれます。

注:ラベルに設定されたtextInteractionFlags には、TextSelectableByMouseまたはTextSelectableByKeyboardのいずれかが含まれている必要があります。

アクセス関数:

QString selectedText() const

関連項目 :hasSelectedText()

text : QString

このプロパティには、ラベルのテキストが格納されます。

テキストが設定されていない場合、空の文字列が返されます。テキストを設定すると、以前の内容はすべて消去されます。

テキストは、テキスト形式の設定に応じて、プレーンテキストまたはリッチテキストとして解釈されます。setTextFormat() を参照してください。デフォルト設定はQt::AutoText です。つまり、QLabel は、設定されたテキストの形式を自動検出しようとします。リッチテキストの定義については、「サポートされている HTML サブセット」を参照してください。

バディが設定されている場合、バディのニーモニックキーは新しいテキストに基づいて更新されます。

なお、QLabel は、ラベルのパレットやフォントプロパティから文書固有の設定(フォント、テキスト色、リンク色)を取得する小規模な文書など、小規模なリッチテキスト文書の表示に最適です。大規模な文書の場合は、代わりに読み取り専用モードのQTextEdit を使用してください。QTextEdit は、必要に応じてスクロールバーを表示することもできます。

注: text にリッチテキストが含まれている場合、この関数はマウス追跡を 有効にします。

Access 関数:

QString text() const
void setText(const QString &)

関連項目: setTextFormat()、setBuddy()、およびalignment。

textFormat : Qt::TextFormat

このプロパティは、ラベルのテキスト形式を保持します。

利用可能なオプションの説明については、Qt::TextFormat 列挙型を参照してください。

デフォルトの形式は `Qt::AutoText` です。

アクセス関数:

Qt::TextFormat textFormat() const
void setTextFormat(Qt::TextFormat)

text()も参照してください 。

textInteractionFlags : Qt::TextInteractionFlags

ラベルにテキストが表示される場合、そのラベルがユーザー入力に対してどのように反応するかを指定します。

フラグにQt::LinksAccessibleByKeyboard が含まれている場合、フォーカスポリシーも自動的にQt::StrongFocus に設定されます。Qt::TextSelectableByKeyboard が設定されている場合、フォーカスポリシーはQt::ClickFocus に設定されます。

デフォルト値は `Qt::LinksAccessibleByMouse` です。

アクセス機能:

Qt::TextInteractionFlags textInteractionFlags() const
void setTextInteractionFlags(Qt::TextInteractionFlags flags)

wordWrap : bool

このプロパティは、ラベルの折り返し設定を保持します。

このプロパティが `true ` の場合、ラベルのテキストは必要に応じて語区切りで折り返されます。それ以外の場合は、一切折り返されません。

デフォルトでは、ワードラップは無効になっています。

アクセス関数:

bool wordWrap() const
void setWordWrap(bool on)

「text」も参照してください 。

メンバ関数のドキュメント

[explicit] QLabel::QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

空のラベルを作成します。

parent およびウィジェットフラグf の引数は、QFrame コンストラクタに渡されます。

setAlignment()、setFrameStyle()、およびsetIndent()も参照してください 。

[explicit] QLabel::QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

「text 」というテキストを表示するラベルを作成します。

引数として `parent ` およびウィジェットフラグ `f` が `QFrame ` コンストラクタに渡されます。

setText()、setAlignment()、setFrameStyle()、およびsetIndent()も参照してください 。

[virtual noexcept] QLabel::~QLabel()

ラベルを削除します。

QWidget *QLabel::buddy() const

このラベルのバディを返します。現在バディが設定されていない場合は、nullptrを返します。

setBuddy()も参照してください 。

[override virtual protected] void QLabel::changeEvent(QEvent *ev)

QFrame::changeEvent(QEvent *ev) を再実装します。

[slot] void QLabel::clear()

ラベルの内容をすべて消去します。

[override virtual protected] void QLabel::contextMenuEvent(QContextMenuEvent *ev)

QWidget::contextMenuEvent (QContextMenuEvent *event)を再実装します。

[override virtual protected] bool QLabel::event(QEvent *e)

QFrame::event(QEvent *e) を再実装します。

[override virtual protected] void QLabel::focusInEvent(QFocusEvent *ev)

QWidget::focusInEvent(QFocusEvent *event) を再実装します。

[override virtual protected] bool QLabel::focusNextPrevChild(bool next)

QWidget::focusNextPrevChild (bool next)を再実装します。

[override virtual protected] void QLabel::focusOutEvent(QFocusEvent *ev)

QWidget::focusOutEvent(QFocusEvent *event) を再実装します。

[override virtual] int QLabel::heightForWidth(int w) const

QWidget::heightForWidth(int w) const の再実装。

[override virtual protected] void QLabel::keyPressEvent(QKeyEvent *ev)

QWidget::keyPressEvent(QKeyEvent *event) を再実装します。

[signal] void QLabel::linkActivated(const QString &link)

このシグナルは、ユーザーがリンクをクリックしたときに送信されます。アンカーが指すURLは、link として渡されます。

linkHovered()も参照してください 。

[signal] void QLabel::linkHovered(const QString &link)

このシグナルは、ユーザーがリンクの上にカーソルを合わせると発火します。アンカーが指すURLは、link として渡されます。

linkActivated()も参照してください 。

[override virtual] QSize QLabel::minimumSizeHint() const

プロパティ「QWidget::minimumSizeHint 」のアクセス関数を再実装します。

[override virtual protected] void QLabel::mouseMoveEvent(QMouseEvent *ev)

QWidget::mouseMoveEvent(QMouseEvent *event) を再実装します。

[override virtual protected] void QLabel::mousePressEvent(QMouseEvent *ev)

QWidget::mousePressEvent(QMouseEvent *event) を再実装します。

[override virtual protected] void QLabel::mouseReleaseEvent(QMouseEvent *ev)

QWidget::mouseReleaseEvent(QMouseEvent *event) の再実装です。

QMovie *QLabel::movie() const

ラベルのムービーへのポインタを返します。ムービーが設定されていない場合は、nullptrを返します。

setMovie()も参照してください 。

[override virtual protected] void QLabel::paintEvent(QPaintEvent *)

QFrame::paintEvent (QPaintEvent *)を再実装します。

[since 6.0] QPicture QLabel::picture() const

ラベルの画像を返します。

この関数は Qt 6.0 で導入されました。

setPicture()も参照してください 。

[since 6.1] QTextDocument::ResourceProvider QLabel::resourceProvider() const

このラベルのリッチテキスト用のリソースプロバイダを返します。

この関数は Qt 6.1 で導入されました。

setResourceProvider()も参照してください 。

int QLabel::selectionStart() const

selectionStart() は、ラベル内で最初に選択された文字のインデックスを返します。テキストが選択されていない場合は -1 を返します。

注:ラベルに設定されたtextInteractionFlags には、TextSelectableByMouseまたはTextSelectableByKeyboardのいずれかが含まれている必要があります。

関連項目 :selectedText()

void QLabel::setBuddy(QWidget *buddy)

このラベルのバディを「buddy 」に設定します。

ユーザーがこのラベルで指定されたショートカットキーを押すと、キーボードフォーカスがこのラベルのバディウィジェットに移ります。

バディ機能は、テキスト内の 1 文字の先頭にアンパサンド「&」が付いている QLabel でのみ利用可能です。この文字がショートカットキーとして設定されます。詳細については、QKeySequence::mnemonic() のドキュメントを参照してください(実際のアンパサンドを表示するには、「&&」を使用してください)。

ダイアログでは、2つのデータ入力ウィジェットと、それぞれに対応するラベルを作成し、各ラベルがそのデータ入力ウィジェット(「バディ」)のすぐ左側に配置されるようにジオメトリレイアウトを設定することができます。例えば、次のようにします。

QLineEdit *nameEdit  = new QLineEdit(this);
QLabel    *nameLabel = new QLabel("&Name:", this);
nameLabel->setBuddy(nameEdit);
QLineEdit *phoneEdit  = new QLineEdit(this);
QLabel    *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);
// (layout setup not shown)

上記のコードでは、ユーザーが Alt+N を押すと「Name」フィールドに、Alt+P を押すと「Phone」フィールドにフォーカスが移動します。

以前に設定したバディの設定を解除するには、buddy をnullptrに設定してこの関数を呼び出します。

buddy()、setText()、QShortcut 、およびsetAlignment()も参照してください 。

[slot] void QLabel::setMovie(QMovie *movie)

ラベルの内容を「movie 」に設定します。以前の内容はすべて消去されます。このラベルはムービーの所有権を取得しません。

バディショートカットがある場合は、無効化されます。

movie() およびsetBuddy()も参照してください 。

[slot] void QLabel::setNum(int num)

ラベルの内容を、整数num の文字列表現を含むプレーンテキストに設定します。以前の内容はすべて消去されます。整数の文字列表現がラベルの現在の内容と一致する場合は、何も行いません。

バディショートカットがある場合は、無効化されます。

注:この スロットは オーバーロードされています。このスロットに接続するには:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        label, qOverload(&QLabel::setNum));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        label, [receiver = label](int num) { receiver->setNum(num); });
その他の例や手法については、「オーバーロードされたスロットへの接続」を参照してください。

関連項目: setText()、QString::setNum()、およびsetBuddy()。

[slot] void QLabel::setNum(double num)

ラベルの内容を、double型num の文字列表現を含むプレーンテキストに設定します。以前の内容はすべて消去されます。double型の文字列表現がラベルの現在の内容と一致する場合は、何も行いません。

バディショートカット(存在する場合)は無効化されます。

注:この スロットは オーバーロードされています。このスロットに接続するには:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        label, qOverload(&QLabel::setNum));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        label, [receiver = label](double num) { receiver->setNum(num); });
その他の例や手法については、「オーバーロードされたスロットへの接続」を参照してください。

関連項目: setText()、QString::setNum()、setBuddy()も参照してください 。

[slot] void QLabel::setPicture(const QPicture &picture)

ラベルの内容を「picture 」に設定します。それまでの内容はすべて消去されます。

バディショートカットがある場合は、無効化されます。

picture() およびsetBuddy()も参照してください 。

[since 6.1] void QLabel::setResourceProvider(const QTextDocument::ResourceProvider &provider)

このラベルのリッチテキスト用リソースのprovider を設定します。

注: ラベルは provider の所有権を取得しません。

この関数は Qt 6.1 で導入されました。

resourceProvider()も参照してください 。

void QLabel::setSelection(int start, int length)

位置start から、length 文字分のテキストを選択します。

注:ラベルに設定されたtextInteractionFlags には、TextSelectableByMouseまたはTextSelectableByKeyboardのいずれかが含まれている必要があります。

selectedText()も参照してください 。

[override virtual] QSize QLabel::sizeHint() const

QFrame::sizeHint() const を再実装します。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.