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 です。

フレーム・ウィジェットには、ボーダーの太さを表す3つの属性があります:lineWidth midLineWidthframeWidth です。

  • 線幅はフレームのボーダーの幅です。これは、フレームの外観をカスタマイズするために変更することができます。
  • 中間線の幅は、フレームの真ん中にある余分な線の幅を指定します。これは、特別な3D効果を得るために3番目の色を使用します。中間の線は、BoxHLineVLine のフレームで、盛り上がっているか沈んでいるものだけに描かれることに注意してください。
  • フレームの幅はフレームスタイルによって決定され、frameWidth ()関数を使用して、使用するスタイルに定義された値を取得します。

フレームとフレームの内容の間のマージンは、QWidget::setContentsMargins() 関数でカスタマイズできます。

この表は、スタイルと線幅の組み合わせの一部を示しています:

Table of frame styles

メンバ型 ドキュメント

enum QFrame::Shadow

この列挙型は、フレームに3D効果を与えるために使用される影のタイプを定義する。

定数説明
QFrame::Plain0x0010パレットQPalette::WindowText の色を使って描画します (3D効果なし)。
QFrame::Raised0x0020カ レ ン ト カ ラ ーの色グループの明 色 と 暗 色を使っ て 3D な隆起線を描 き ます。
QFrame::Sunken0x0030現在の色グループの明るい色と暗い色を使って、3Dの沈んだ線を描きます。

シャドウはQFrame::ShapelineWidth() 、midLineWidth() と相互作用します。メイン・クラスのドキュメントにあるフレームの画像を参照してください。

QFrame::ShapelineWidth()、midLineWidth()も参照してください

enum QFrame::Shape

この列挙型は、利用可能なフレームの形状を定義する。

定数説明
QFrame::NoFrame0QFrame 何も描画しない
QFrame::Box0x0001QFrame 内容を囲むボックスを描画します。
QFrame::Panel0x0002QFrame パネルが盛り上がって見えたり、沈んで見えたりするように描画します。
QFrame::StyledPanel0x0006現在のGUIスタイルに依存した外観を持つ長方形のパネルを描画します。盛り上がったり沈んだりします。
QFrame::HLine0x0004QFrame 何も縁取らない水平線を描画します (セパレータとして便利です)。
QFrame::VLine0x0005QFrame 何も縁取らない垂直線を描画します (セパレータとして便利です)。
QFrame::WinPanel0x0003Windows2000にあるような長方形のパネルを描画します。この形状を指定すると、線幅が2ピクセルに設定されます。WinPanelは互換性のために提供されています。GUIスタイルに依存しないためには、代わりにStyledPanelを使用することをお勧めします。

QStyle を呼び出さない場合、Shape はQFrame::ShadowlineWidth() 、midLineWidth() と相互作用して、全体の結果を作成します。メイン・クラスのドキュメントにあるフレームの画像を参照してください。

QFrame::ShadowQFrame::style ()、QStyle::drawPrimitive)も参照して ください。

enum QFrame::StyleMask

この列挙型は、frameStyle()の2つのコンポーネントを抽出するために使用できる2つの定数を定義する:

定数説明
QFrame::Shadow_Mask0x00f0frameStyle() のShadow の部分。
QFrame::Shape_Mask0x000fframeStyle() のShape 部分。

frameShadow() とframeShape() は、すでにShadowShape の部分frameStyle() を抽出しているので、通常はこれらを使用する必要はない。

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)

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ピクセルのフレームウィジェットを構築します。

parentf の引数は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

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