QFrame Class
QFrame 클래스는 프레임을 가질 수 있는 위젯의 기본 클래스입니다. 더 보기...
| 헤더: | #include <QFrame> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 상속받음: | QWidget |
| 상속받는 클래스: | QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget, 그리고 QToolBox |
공개 유형
| enum | Shadow { Plain, Raised, Sunken } |
| enum | Shape { NoFrame, Box, Panel, StyledPanel, HLine, …, WinPanel } |
| enum | StyleMask { Shadow_Mask, Shape_Mask } |
속성
|
|
공개 함수
| QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
| virtual | ~QFrame() |
| QRect | frameRect() const |
| QFrame::Shadow | frameShadow() const |
| QFrame::Shape | frameShape() const |
| int | frameStyle() const |
| int | frameWidth() const |
| int | lineWidth() const |
| int | midLineWidth() const |
| void | setFrameRect(const QRect &) |
| void | setFrameShadow(QFrame::Shadow) |
| void | setFrameShape(QFrame::Shape) |
| void | setFrameStyle(int style) |
| void | setLineWidth(int) |
| void | setMidLineWidth(int) |
재구현된 공용 함수
| virtual QSize | sizeHint() const override |
보호된 함수
| virtual void | initStyleOption(QStyleOptionFrame *option) const |
재구현된 보호된 함수
| virtual void | changeEvent(QEvent *ev) override |
| virtual bool | event(QEvent *e) override |
| virtual void | paintEvent(QPaintEvent *) override |
상세 설명
QMenu 이를 사용하여 메뉴를 주변 화면 위로 "튀어나오게" 표시합니다. QProgressBar 는 "오목한" 느낌을 줍니다. QLabel 는 평면적인 느낌을 줍니다. 이와 같은 위젯의 프레임은 변경할 수 있습니다.
QLabel label(...);
label.setFrameStyle(QFrame::Panel | QFrame::Raised);
label.setLineWidth(2);
QProgressBar pbar(...);
label.setFrameStyle(QFrame::NoFrame);QFrame 클래스는 내용이 전혀 없는 간단한 자리 표시자 프레임을 만드는 데에도 직접 사용할 수 있습니다.
프레임 스타일은 frame shape 와 shadow style 로 지정되며, 이를 통해 프레임을 주변 위젯과 시각적으로 구분합니다. 이러한 속성은 setFrameStyle() 함수를 사용하여 함께 설정할 수 있으며, frameStyle()를 통해 읽을 수 있습니다.
프레임 모양으로는 NoFrame, Box, Panel, StyledPanel, HLine, VLine 가 있으며, 그림자 스타일로는 Plain, Raised, Sunken 가 있습니다.
프레임 위젯에는 테두리의 두께를 나타내는 세 가지 속성이 있습니다: lineWidth, midLineWidth 및 frameWidth.
- 선 너비는 프레임 테두리의 너비를 의미합니다. 이 값을 수정하여 프레임의 모양을 사용자 정의할 수 있습니다.
- 중간 선 너비는 프레임 중앙에 추가되는 선의 너비를 지정하며, 세 번째 색상을 사용하여 특별한 3D 효과를 연출합니다. 중간 선은 Box, HLine 및 VLine 스타일의 프레임 중 돌출되거나 오목한 경우에만 그려진다는 점에 유의하십시오.
- 프레임 너비는 프레임 스타일에 따라 결정되며, frameWidth() 함수를 사용하여 사용된 스타일에 정의된 값을 가져옵니다.
프레임과 프레임 내 콘텐츠 사이의 여백은 QWidget::setContentsMargins() 함수를 사용하여 사용자 정의할 수 있습니다.
이 표는 스타일과 선 너비의 몇 가지 조합을 보여줍니다:

멤버 유형 설명서
enum QFrame::Shadow
이 열거형 유형은 프레임에 3D 효과를 부여하는 데 사용되는 그림자 유형을 정의합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QFrame::Plain | 0x0010 | 프레임과 내용이 주변과 같은 높이로 보입니다. 팔레트 QPalette::WindowText 색상을 사용하여(3D 효과 없이) 그립니다. |
QFrame::Raised | 0x0020 | 프레임과 내용이 돌출된 것처럼 보입니다. 현재 색상 그룹의 밝은 색과 어두운 색을 사용하여 3D 돌출 선을 그립니다. |
QFrame::Sunken | 0x0030 | 테두리와 내용이 움푹 들어간 것처럼 보임; 현재 색상 그룹의 밝은 색과 어두운 색을 사용하여 3D 움푹 들어간 선을 그립니다 |
Shadow는 QFrame::Shape, lineWidth() 및 midLineWidth()와 상호 작용합니다. 메인 클래스 문서에 있는 프레임 그림을 참조하십시오.
QFrame::Shape, lineWidth() 및 midLineWidth()도 참조하십시오 .
enum QFrame::Shape
이 열거형 유형은 사용할 수 있는 프레임의 모양을 정의합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QFrame::NoFrame | 0 | QFrame 아무것도 그리지 않습니다 |
QFrame::Box | 0x0001 | QFrame 내용 주위에 상자를 그립니다 |
QFrame::Panel | 0x0002 | QFrame 패널을 그려 내용을 돌출되거나 오목하게 보이게 함 |
QFrame::StyledPanel | 0x0006 | 현재 GUI 스타일에 따라 모양이 달라지는 직사각형 패널을 그립니다. 돌출되거나 오목하게 표시될 수 있습니다. |
QFrame::HLine | 0x0004 | QFrame 아무것도 둘러싸지 않는 수평선을 그립니다(구분선으로 유용함) |
QFrame::VLine | 0x0005 | QFrame 아무것도 둘러싸지 않는 수직선을 그립니다(분리선으로 유용함) |
QFrame::WinPanel | 0x0003 | Windows 2000의 패널처럼 돌출되거나 오목하게 표시될 수 있는 직사각형 패널을 그립니다. 이 모양을 지정하면 선 너비가 2픽셀로 설정됩니다. WinPanel은 호환성을 위해 제공됩니다. GUI 스타일에 구애받지 않으려면 대신 StyledPanel을 사용하는 것이 좋습니다. |
QStyle 를 호출하지 않을 경우, Shape는 QFrame::Shadow, lineWidth() 및 midLineWidth()와 상호작용하여 최종 결과를 생성합니다. 메인 클래스 문서의 프레임 그림을 참조하십시오.
QFrame::Shadow, QFrame::style() 및 QStyle::drawPrimitive()도 참조하십시오 .
enum QFrame::StyleMask
이 열거형은 ` frameStyle()`의 두 구성 요소를 추출하는 데 사용할 수 있는 두 개의 상수를 정의합니다:
| 상수 | 값 | 설명 |
|---|---|---|
QFrame::Shadow_Mask | 0x00f0 | frameStyle()의 Shadow 부분 |
QFrame::Shape_Mask | 0x000f | frameStyle()의 Shape 부분 |
일반적으로 frameShadow() 및 frameShape() 함수가 이미 frameStyle()의 Shadow 및 Shape 부분을 추출해 주므로, 이 함수들을 사용할 필요는 없습니다.
frameStyle() 및 setFrameStyle()도 참조하십시오 .
속성 문서
frameRect : QRect
이 속성은 프레임의 사각형을 저장합니다.
프레임의 사각형은 프레임이 그려지는 영역을 나타냅니다. 기본적으로 이 영역은 위젯 전체를 포함합니다. 사각형을 설정해도 위젯이 업데이트되지는 않습니다. 위젯의 크기가 변경되면 프레임의 사각형도 자동으로 조정됩니다.
직사각형을 null 직사각형(예: ` QRect(0, 0, 0, 0)`)으로 설정하면, 결과적인 프레임 직사각형은 ` widget rectangle`과 동일해집니다.
액세스 함수:
| QRect | frameRect() const |
| void | setFrameRect(const QRect &) |
frameShadow : Shadow
이 속성은 프레임 스타일의 프레임 그림자 값을 저장합니다.
액세스 함수:
| QFrame::Shadow | frameShadow() const |
| void | setFrameShadow(QFrame::Shadow) |
frameStyle() 및 frameShape()도 참조하십시오 .
frameShape : Shape
이 속성은 프레임 스타일의 프레임 모양 값을 저장합니다.
액세스 함수:
| QFrame::Shape | frameShape() const |
| void | setFrameShape(QFrame::Shape) |
frameStyle() 및 frameShadow()도 참조하십시오 .
[read-only] frameWidth : int
이 속성은 그려지는 프레임의 너비를 지정합니다.
프레임 너비는 선 너비나 중간 선 너비뿐만 아니라 frame style 에 따라 달라진다는 점에 유의하십시오. 예를 들어, NoFrame 로 지정된 스타일의 프레임 너비는 항상 0인 반면, Panel 스타일의 프레임 너비는 선 너비와 동일합니다.
액세스 함수:
| int | frameWidth() const |
lineWidth(), midLineWidth(), frameStyle()도 참조하십시오 .
lineWidth : int
이 속성은 선 너비를 지정합니다
분리선으로 사용되는 프레임(HLine 및 VLine)의 총 선 너비는 frameWidth 로 지정된다는 점에 유의하십시오.
기본값은 1입니다.
액세스 함수:
| int | lineWidth() const |
| void | setLineWidth(int) |
midLineWidth 및 frameWidth도 참조하십시오 .
midLineWidth : int
이 속성은 중간선의 너비를 지정합니다.
기본값은 0입니다.
액세스 함수:
| int | midLineWidth() const |
| void | setMidLineWidth(int) |
lineWidth 및 frameWidth도 참조하십시오 .
멤버 함수 설명서
[explicit] QFrame::QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
NoFrame 스타일의 프레임과 1픽셀 너비의 프레임을 가진 프레임 위젯을 생성합니다.
parent 및 f 인수는 QWidget 생성자에 전달됩니다.
[virtual noexcept] QFrame::~QFrame()
프레임을 파괴합니다.
[override virtual protected] void QFrame::changeEvent(QEvent *ev)
QWidget::changeEvent(QEvent *event)를 재구현합니다.
[override virtual protected] bool QFrame::event(QEvent *e)
QWidget::event(QEvent *event)를 재구현합니다.
int QFrame::frameStyle() const
프레임 스타일을 반환합니다.
기본값은 QFrame::Plain 입니다.
setFrameStyle(), frameShape(), frameShadow()도 참조하십시오 .
[virtual protected] void QFrame::initStyleOption(QStyleOptionFrame *option) const
이 QFrame 의 값을 사용하여 option 을 초기화합니다. 이 메서드는 하위 클래스에서 QStyleOptionFrame 가 필요하지만 모든 정보를 직접 입력하고 싶지 않을 때 유용합니다.
QStyleOption::initFrom()도 참조하십시오 .
[override virtual protected] void QFrame::paintEvent(QPaintEvent *)
QWidget::paintEvent(QPaintEvent *event)를 재구현합니다.
void QFrame::setFrameStyle(int style)
프레임 스타일을 ‘ style ’로 설정합니다.
style 는 프레임 모양과 프레임 그림자 스타일을 비트별 OR 연산한 결과입니다. 메인 클래스 설명서의 프레임 그림을 참조하십시오.
프레임 모양은 QFrame::Shape 에, 그림자 스타일은 QFrame::Shadow 에 나와 있습니다.
0보다 큰 중간 선 너비가 지정된 경우, Raised 또는 Sunken Box , HLine, VLine 프레임에 대해 추가 선이 그려집니다. 중간 선을 그릴 때는 현재 색상 그룹의 중간 색상이 사용됩니다.
frameStyle()도 참조하십시오 .
[override virtual] QSize QFrame::sizeHint() const
QWidget::sizeHint 속성에 대한 액세스 함수를 다시 구현합니다.
© 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.