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 을 전달합니다. |
서식 있는 텍스트 | 서식 있는 텍스트가 포함된 QString 를 setText()로 전달합니다. |
픽셀맵 | QPixmap 를 setPixmap()로 전달합니다. |
동영상 | QMovie 를 setMovie()로 전달합니다. |
숫자 | setNum()에 int 또는 double을 전달하면 숫자가 일반 텍스트로 변환됩니다. |
아무것도 | 빈 일반 텍스트와 동일합니다. 기본값입니다. clear ()로 설정합니다. |
경고: 생성자에 QString 을 전달하거나 setText()을 호출할 때, QLabel은 텍스트를 일반 텍스트로 표시할지 HTML 4 마크업의 하위 집합인 서식 있는 텍스트로 표시할지 추측하므로 입력을 위생 처리해야 합니다. 텍스트가 일반 텍스트 형식이어야 하지만 텍스트 소스를 제어할 수 없는 경우(예: 웹에서 로드한 데이터를 표시할 때)에는 setTextFormat()를 명시적으로 호출하는 것이 좋습니다.
이러한 함수 중 하나를 사용하여 콘텐츠를 변경하면 이전 콘텐츠가 모두 지워집니다.
기본적으로 레이블은 왼쪽 정렬, 세로 중심의 텍스트 및 이미지를 표시하며, 표시할 텍스트의 모든 탭은 automatically expanded 입니다. 그러나 QLabel의 모양은 여러 가지 방법으로 조정하고 미세 조정할 수 있습니다.
setAlignment() 및 setIndent()을 사용하여 QLabel 위젯 영역 내 콘텐츠의 위치를 조정할 수 있습니다. 텍스트 콘텐츠는 setWordWrap()를 사용하여 단어 경계를 따라 줄을 묶을 수도 있습니다. 예를 들어, 이 코드는 오른쪽 하단에 두 줄의 텍스트가 있는 움푹 들어간 패널을 설정합니다(두 줄 모두 레이블의 오른쪽과 같은 높이에 있음):
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은 키보드 포커스를 다른 위젯("친구"라고 함)으로 설정하는 니모닉( 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 : 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) |
정렬, 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
이 속성은 레이블의 픽셀맵을 보유합니다.
픽스맵을 설정하면 이전 콘텐츠가 모두 지워집니다. 버디 바로가기가 있는 경우 비활성화됩니다.
기능에 액세스합니다:
QPixmap | pixmap() const |
void | setPixmap(const QPixmap &) |
scaledContents : bool
이 속성은 사용 가능한 모든 공간을 채우도록 레이블의 콘텐츠 크기를 조정할지 여부를 결정합니다.
활성화되어 있고 레이블에 픽셀맵이 표시되면 사용 가능한 공간을 채우도록 픽셀맵의 크기가 조정됩니다.
이 속성의 기본값은 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() 및 정렬도참조하세요 .
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 * 이벤트).
[override virtual protected]
bool QLabel::event(QEvent *e)
다시 구현합니다: QFrame::event(QEvent *e).
[override virtual protected]
void QLabel::focusInEvent(QFocusEvent *ev)
다시 구현합니다: QWidget::focusInEvent(QFocusEvent * 이벤트).
[override virtual protected]
bool QLabel::focusNextPrevChild(bool next)
다시 구현합니다: QWidget::focusNextPrevChild(다음 부울).
[override virtual protected]
void QLabel::focusOutEvent(QFocusEvent *ev)
다시 구현합니다: QWidget::focusOutEvent(QFocusEvent * 이벤트).
[override virtual]
int QLabel::heightForWidth(int w) const
재구현합니다: QWidget::heightForWidth(int w) const.
[override virtual protected]
void QLabel::keyPressEvent(QKeyEvent *ev)
다시 구현합니다: QWidget::keyPressEvent(QKeyEvent * 이벤트).
[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 * 이벤트).
[override virtual protected]
void QLabel::mousePressEvent(QMouseEvent *ev)
다시 구현합니다: QWidget::mousePressEvent(QMouseEvent * 이벤트).
[override virtual protected]
void QLabel::mouseReleaseEvent(QMouseEvent *ev)
다시 구현합니다: QWidget::mouseReleaseEvent(QMouseEvent * 이벤트).
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 로 설정합니다.
사용자가 이 레이블로 표시된 단축키를 누르면 키보드 초점이 레이블의 버디 위젯으로 이동합니다.
버디 메커니즘은 한 문자 앞에 앰퍼샌드인 '&'가 붙은 텍스트가 포함된 Q레이블에만 사용할 수 있습니다. 이 문자는 바로 가기 키로 설정됩니다. 자세한 내용은 QKeySequence::mnemonic() 문서를 참조하세요(실제 앰퍼샌드를 표시하려면 '&&'를 사용하세요).
예를 들어 대화 상자에서 두 개의 데이터 입력 위젯과 각각에 대한 레이블을 만들고 각 레이블이 데이터 입력 위젯('버디')의 왼쪽에 위치하도록 지오메트리 레이아웃을 설정할 수 있습니다:
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을 누르면 초점이 이름 필드로 이동하고, 사용자가 Alt+P를 누르면 전화 필드로 이동합니다.
이전에 설정된 버디를 해제하려면 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)
이 함수는 과부하된 함수입니다.
레이블 콘텐츠를 이중 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.
© 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.