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は、以下のコンテンツ・タイプのいずれかを含むことができます:

コンテンツ設定
プレーン・テキストsetText() にQString を渡します。
リッチ・テキストリッチテキストを含むQStringsetText() に渡す。
ピクセルマップQPixmapsetPixmap() に渡す。
ムービーsetMovie() にQMovie を渡す。
数値数値をプレーンテキストに変換するsetNum() にintまたはdouble を渡す。
何もない空のプレーンテキストと同じ。これがデフォルト。clear() で設定する。

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

これらの関数を使用して内容が変更されると、以前の内容はすべて消去されます。

デフォルトでは、ラベルは左揃え、縦中央のテキストと画像を表示し、表示されるテキスト内のタブは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の "buddy "と呼ばれる)に設定するニーモニック(QKeySequence を参照)を追加する便利なメカニズムを提供します。例えば

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

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

QLineEditQTextEditQPixmapQMovieも参照

プロパティ・ドキュメンテーション

alignment : Qt::Alignment

このプロパティは、ラベルの内容の配置を保持する。

デフォルトでは、ラベルの内容は左揃えで縦中央に配置されます。

アクセス関数:

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

textも参照のこと

[read-only] hasSelectedText : const 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 の場合は下端に適用される。

インデントが負の場合、またはインデントが設定されていない場合、ラベルは以下のように有効なインデントを計算する: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

このプロパティはラベルの pixmap を保持する。

pixmap を設定すると、以前の内容はすべて消去される。バディショートカットがあれば、無効になります。

アクセス関数

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

scaledContents : bool

このプロパティは、ラベルが利用可能なすべてのスペースを埋めるためにその内容を拡大縮小するかどうかを保持する。

有効でラベルがpixmapを表示している場合、利用可能なスペースを埋めるためにpixmapを拡大縮小する。

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

アクセス関数:

bool hasScaledContents() const
void setScaledContents(bool)

[read-only] selectedText : const QString

このプロパティは選択されたテキストを保持する。

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

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

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

アクセス関数:

QString selectedText() const

hasSelectedText()も参照してください

text : QString

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

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

テキストは、setTextFormat() を参照。Qt::AutoTextすなわち、QLabel は、設定されたテキストのフォーマットを自動検出しようとします。リッチテキストの定義については「サポートされるHTMLサブセット」を参照してください。

buddyが設定されている場合、buddyニーモニックキーは新しいテキストから更新されます。

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

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

アクセス関数:

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

setTextFormat ()、setBuddy ()、alignmentも参照してください

textFormat : Qt::TextFormat

このプロパティはラベルのテキストフォーマットを保持する。

可能なオプションの説明はQt::TextFormat enumを参照。

デフォルトの書式は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() は、ラベル内で最初に選択された文字のインデックスを返します。

注意:ラベルに設定されているtextInteractionFlags は、 TextSelectableByMouse か TextSelectableByKeyboard のどちらかを含んでいる必要があります。

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

void QLabel::setBuddy(QWidget *buddy)

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

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

バディ機構は、アンパサンド '&' を先頭に持つテキストを含む QLabels でのみ使用できます。この文字はショートカットキーとして設定されます。詳細は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 のテキスト表現を含むプレーンテキストに設定する。以前の内容はすべてクリアされる。整数の文字列表現が現在のラベルの内容と同じ場合は何もしません。

バディショートカットがあれば、それを無効にします。

setText()、QString::setNum()、setBuddy()も参照

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

これはオーバーロードされた関数である。

ラベルの内容を、num のテキスト表現を含むプレーンテキストに設定します。以前の内容はすべてクリアされます。double の文字列表現が現在のラベルの内容と同じ場合は何もしません。

バディショートカットがあれば、それを無効にする。

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.

© 2025 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.