QLabel Class

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

Header: #include <QLabel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: 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も参照

プロパティ Documentation

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も参照

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

注意:ラベルに設定されている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サブセット」を参照してください。

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

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)

再リンプルメント: (QContextMenuEvent *event):QFrame::event(QEvent *e)。

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

再リンプルメント: (QEvent *e):QWidget::focusInEvent(QFocusEvent *event)。

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

再リンプルメント: (QFocusEvent *event):QWidget::focusNextPrevChild(bool next)。

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

再リンプルメント: (bool next):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)

再リプルメント: (int w) const: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)

再リンプルメント: (QMouseEvent *event):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)

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

ラベルの内容を、doublenum のテキスト表現を含むプレーンテキストに設定する。以前の内容はすべてクリアされます。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.

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。