이 페이지에서

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()에 전달합니다.
숫자setNum()에 int 또는 double을 전달하면, 해당 숫자가 일반 텍스트로 변환됩니다.
값 없음빈 일반 텍스트와 동일합니다. 이것이 기본값입니다. clear()에 의해 설정됩니다.

경고: QString 를 생성자에 전달하거나 setText()를 호출할때는 입력을 반드시 정제해야 합니다. QLabel은 텍스트를 일반 텍스트로 표시할지, 아니면 HTML 4 마크업의 하위 집합인 리치 텍스트로 표시할지 추측하기 때문입니다. 예를 들어, 텍스트가 일반 형식일 것으로 예상되지만 텍스트 소스를 제어할 수 없는 경우(예: 웹에서 로드한 데이터를 표시할 때)에는 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가 설정되지 않은 경우, 레이블은 다음과 같이 유효 indent를 계산합니다. frameWidth()가 0이면 유효 indent는 0이 됩니다. frameWidth()가 0보다 크면 유효 indent는 위젯의 현재 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 에 서식 있는 텍스트가 포함된 경우,이 함수는 마우스 추적 기능을 활성화합니다.

액세스 함수:

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 *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 로 설정합니다.

사용자가 이 레이블에 지정된 단축키를 누르면, 키보드 포커스가 해당 레이블의 버디 위젯으로 이동합니다.

버디 메커니즘은 텍스트 중 한 글자 앞에 앰퍼샌드('&')가 붙은 QLabel에서만 사용할 수 있습니다. 이 문자가 단축키로 설정됩니다. 자세한 내용은 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을 누르면 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.