このページでは

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 、midLineWidth 、およびframeWidth です。

  • 線幅は、フレームの境界線の幅を指します。これを変更することで、フレームの外観をカスタマイズできます。
  • ミッドラインの幅は、フレームの中央にある追加の線の幅を指定するもので、3色目を使用して特別な3D効果を生み出します。ミッドラインは、Box 、HLine 、VLine の各フレームで、隆起型または凹型の場合にのみ描画されることに注意してください。
  • フレームの幅はフレームスタイルによって決定され、frameWidth() 関数を使用して、使用されているスタイルに定義された値を取得します。

フレームとフレーム内のコンテンツとの間の余白は、QWidget::setContentsMargins() 関数を使用してカスタマイズできます。

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

フレームスタイル一覧

メンバータイプ ドキュメント

enum QFrame::Shadow

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

定数値説明
QFrame::Plain0x0010フレームとコンテンツは周囲と同じ高さに表示されます。パレットのQPalette::WindowText 色を使用して描画されます(3D効果は適用されません)
QFrame::Raised0x0020フレームとコンテンツが浮き上がって見える。現在のカラーグループの明るい色と暗い色を使用して、3Dの浮き上がった線を描画する
QFrame::Sunken0x0030フレームと内容が窪んで見える。現在のカラーグループの明るい色と暗い色を使用して、3Dの窪んだ線を描画する

Shadow は、QFrame::Shape 、lineWidth()、およびmidLineWidth() と連携します。メインクラスのドキュメントにあるフレームの図を参照してください。

QFrame::Shape 、lineWidth()、およびmidLineWidth()も参照してください 。

enum QFrame::Shape

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

定数値説明
QFrame::NoFrame0QFrame 何も描画しない
QFrame::Box0x0001QFrame コンテンツの周囲にボックスを描画します
QFrame::Panel0x0002QFrame パネルを描画し、内容を浮き出したり沈み込ませたりして表示する
QFrame::StyledPanel0x0006現在のGUIスタイルに応じた外観の矩形パネルを描画します。浮き出たり、くぼんだりさせることができます。
QFrame::HLine0x0004QFrame 何も囲まない水平線を描画します(区切り線として便利です)
QFrame::VLine0x0005QFrame 何も囲まない垂直線を描画します(区切り線として便利です)
QFrame::WinPanel0x0003Windows 2000 のような、浮き出たり凹んだりできる長方形のパネルを描画します。この形状を指定すると、線の幅は 2 ピクセルに設定されます。WinPanel は互換性のために提供されています。GUI スタイルに依存しないようにするには、代わりに StyledPanel を使用することをお勧めします。

QStyle を呼び出さない場合、ShapeはQFrame::Shadow 、lineWidth()、およびmidLineWidth()と連携して、最終的な結果を作成します。メインクラスのドキュメントにあるフレームの図を参照してください。

QFrame::Shadow 、QFrame::style()、およびQStyle::drawPrimitive()も参照してください 。

enum QFrame::StyleMask

この列挙型は、frameStyle() の 2 つの構成要素を抽出するために使用できる 2 つの定数を定義しています:

定数値説明
QFrame::Shadow_Mask0x00f0frameStyle() の `Shadow ` 部分
QFrame::Shape_Mask0x000fframeStyle() の「Shape 」部分

通常、frameShadow() およびframeShape() は、frameStyle() のShadow および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 : 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.