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 shapeshadow style 으로 지정됩니다. 이러한 속성은 setFrameStyle() 함수를 사용하여 함께 설정하고 frameStyle()로 읽을 수 있습니다.

프레임 모양은 NoFrame, Box, Panel, StyledPanel, HLineVLine 이며 그림자 스타일은 Plain, RaisedSunken 입니다.

프레임 위젯에는 테두리의 두께를 설명하는 세 가지 속성이 있습니다: lineWidth, midLineWidth, 및 frameWidth 입니다.

  • 선 너비는 프레임 테두리의 너비입니다. 이 속성을 수정하여 프레임의 모양을 사용자 지정할 수 있습니다.
  • 중간 선 너비는 프레임 중간에 있는 추가 선의 너비를 지정하며, 특별한 3D 효과를 얻기 위해 세 번째 색상을 사용합니다. 중간 선은 올라오거나 내려간 Box, HLineVLine 프레임에만 그려집니다.
  • 프레임 너비는 프레임 스타일에 따라 결정되며 frameWidth() 함수는 사용된 스타일에 정의된 값을 가져오는 데 사용됩니다.

프레임과 프레임 내용 사이의 여백은 QWidget::setContentsMargins() 함수를 사용하여 사용자 지정할 수 있습니다.

이 표는 스타일과 줄 너비의 몇 가지 조합을 보여줍니다:

Table of frame styles

멤버 유형 문서

enum QFrame::Shadow

이 열거형 유형은 프레임에 3D 효과를 부여하는 데 사용되는 그림자 유형을 정의합니다.

Constant설명
QFrame::Plain0x0010프레임과 콘텐츠가 주변과 수평으로 표시되고, 팔레트 QPalette::WindowText 색상을 사용하여 그립니다(3D 효과 없이).
QFrame::Raised0x0020프레임과 내용이 솟아오른 것처럼 표시되며, 현재 색상 그룹의 밝은 색상과 어두운 색상을 사용하여 3D 솟아오른 선을 그립니다.
QFrame::Sunken0x0030프레임과 내용이 가라앉은 것처럼 표시되며 현재 색상 그룹의 밝은 색상과 어두운 색상을 사용하여 3D 가라앉은 선을 그립니다.

그림자는 QFrame::Shape, lineWidth() 및 midLineWidth()와 상호 작용합니다. 기본 클래스 문서에서 프레임 그림을 참조하세요.

QFrame::Shape, lineWidth() 및 midLineWidth()도 참조하세요 .

enum QFrame::Shape

이 열거형 유형은 사용 가능한 프레임의 모양을 정의합니다.

Constant설명
QFrame::NoFrame0QFrame 아무것도 그리지 않음
QFrame::Box0x0001QFrame 내용물 주위에 상자를 그립니다.
QFrame::Panel0x0002QFrame 패널을 그려서 내용이 위로 올라가거나 내려가도록 합니다.
QFrame::StyledPanel0x0006현재 GUI 스타일에 따라 모양이 달라지는 직사각형 패널을 그립니다. 패널을 올리거나 내릴 수 있습니다.
QFrame::HLine0x0004QFrame 아무것도 둘러싸지 않는 수평선을 그립니다(구분선으로 유용).
QFrame::VLine0x0005QFrame 아무것도 둘러싸지 않는 수직선을 그립니다(구분선으로 유용).
QFrame::WinPanel0x0003Windows 2000에서와 같이 올리거나 내릴 수 있는 직사각형 패널을 그립니다. 이 모양을 지정하면 선 너비가 2픽셀로 설정됩니다. WinPanel은 호환성을 위해 제공됩니다. GUI 스타일 독립성을 위해 대신 StyledPanel을 사용하는 것이 좋습니다.

QStyle 를 호출하지 않는 경우 셰이프는 QFrame::Shadow, lineWidth() 및 midLineWidth()와 상호 작용하여 전체 결과를 생성합니다. 기본 클래스 문서에서 프레임 그림을 참조하세요.

QFrame::Shadow, QFrame::style() 및 QStyle::drawPrimitive()도 참조하세요 .

enum QFrame::StyleMask

이 열거형은 frameStyle()의 두 구성 요소를 추출하는 데 사용할 수 있는 두 개의 상수를 정의합니다:

Constant설명
QFrame::Shadow_Mask0x00f0frameStyle()의 Shadow 부분
QFrame::Shape_Mask0x000fframeStyle()의 Shape 부분

일반적으로 frameShadow() 및 frameShape()는 이미 ShadowframeStyle()의 Shape 부분을 추출하므로 이 부분을 사용할 필요가 없습니다.

frameStyle() 및 setFrameStyle()도 참조하세요 .

속성 문서

frameRect : QRect

이 속성은 프레임의 직사각형을 보유합니다.

프레임의 사각형은 프레임이 그려지는 사각형입니다. 기본적으로 이것은 전체 위젯입니다. 직사각형을 설정해도 위젯이 업데이트되지 않습니다. 위젯의 크기가 변경되면 프레임 사각형이 자동으로 조정됩니다.

직사각형을 널 직사각형(예: 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 : const int

이 속성은 그려지는 프레임의 너비를 보유합니다.

프레임 너비는 선 너비와 중간 선 너비뿐만 아니라 frame style 에 따라 달라집니다. 예를 들어 NoFrame 으로 지정된 스타일은 항상 프레임 너비가 0인 반면 Panel 스타일은 선 너비와 동일한 프레임 너비를 갖습니다.

함수 액세스:

int frameWidth() const

lineWidth(), midLineWidth() 및 frameStyle()도 참조하세요 .

lineWidth : int

이 속성은 줄 너비를 보유합니다.

구분 기호로 사용되는 프레임의 줄 너비(HLineVLine)는 frameWidth 로 지정됩니다.

기본값은 1입니다.

함수 액세스:

int lineWidth() const
void setLineWidth(int)

midLineWidthframeWidth참조하세요 .

midLineWidth : int

이 속성은 중간 선의 너비를 보유합니다.

기본값은 0입니다.

함수에 액세스합니다:

int midLineWidth() const
void setMidLineWidth(int)

lineWidthframeWidth참조하십시오 .

멤버 함수 문서

[explicit] QFrame::QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

프레임 스타일 NoFrame 및 1픽셀 프레임 너비를 가진 프레임 위젯을 생성합니다.

parentf 인수는 QWidget 생성자에게 전달됩니다.

[virtual noexcept] QFrame::~QFrame()

프레임을 파괴합니다.

[override virtual protected] void QFrame::changeEvent(QEvent *ev)

다시 구현합니다: QWidget::changeEvent(QEvent * 이벤트).

[override virtual protected] bool QFrame::event(QEvent *e)

다시 구현합니다: QWidget::event(QEvent * 이벤트).

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 * 이벤트).

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.

© 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.