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 효과를 부여하는 데 사용되는 그림자 유형을 정의합니다.
Constant | 값 | 설명 |
---|---|---|
QFrame::Plain | 0x0010 | 프레임과 콘텐츠가 주변과 수평으로 표시되고, 팔레트 QPalette::WindowText 색상을 사용하여 그립니다(3D 효과 없이). |
QFrame::Raised | 0x0020 | 프레임과 내용이 솟아오른 것처럼 표시되며, 현재 색상 그룹의 밝은 색상과 어두운 색상을 사용하여 3D 솟아오른 선을 그립니다. |
QFrame::Sunken | 0x0030 | 프레임과 내용이 가라앉은 것처럼 표시되며 현재 색상 그룹의 밝은 색상과 어두운 색상을 사용하여 3D 가라앉은 선을 그립니다. |
그림자는 QFrame::Shape, lineWidth() 및 midLineWidth()와 상호 작용합니다. 기본 클래스 문서에서 프레임 그림을 참조하세요.
QFrame::Shape, lineWidth() 및 midLineWidth()도 참조하세요 .
enum QFrame::Shape
이 열거형 유형은 사용 가능한 프레임의 모양을 정의합니다.
Constant | 값 | 설명 |
---|---|---|
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 를 호출하지 않는 경우 셰이프는 QFrame::Shadow, lineWidth() 및 midLineWidth()와 상호 작용하여 전체 결과를 생성합니다. 기본 클래스 문서에서 프레임 그림을 참조하세요.
QFrame::Shadow, QFrame::style() 및 QStyle::drawPrimitive()도 참조하세요 .
enum QFrame::StyleMask
이 열거형은 frameStyle()의 두 구성 요소를 추출하는 데 사용할 수 있는 두 개의 상수를 정의합니다:
Constant | 값 | 설명 |
---|---|---|
QFrame::Shadow_Mask | 0x00f0 | frameStyle()의 Shadow 부분 |
QFrame::Shape_Mask | 0x000f | frameStyle()의 Shape 부분 |
일반적으로 frameShadow() 및 frameShape()는 이미 Shadow 및 frameStyle()의 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
이 속성은 줄 너비를 보유합니다.
구분 기호로 사용되는 프레임의 총 줄 너비(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 * 이벤트).
[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.