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 を渡します。 |
リッチ・テキスト | リッチテキストを含むQString をsetText() に渡す。 |
ピクセルマップ | QPixmap をsetPixmap() に渡す。 |
ムービー | 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 から継承)であれば、ニモニックをトリガーすることで、ボタンのクリックをエミュレートします。
QLineEdit 、QTextEdit 、QPixmap 、QMovieも参照 。
プロパティ 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も参照 。
openExternalLinks : bool
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 に設定する。以前の内容はすべてクリアされる。ラベルはムービーの所有権を持たない。
バディショートカットがあれば、それを無効にする。
[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 に設定する。以前の内容はすべて消去される。
バディ・ショートカットがあれば、それを無効にします。
[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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。