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::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() の 2 つの構成要素を抽出するために使用できる 2 つの定数を定義しています:
| 定数 | 値 | 説明 |
|---|---|---|
QFrame::Shadow_Mask | 0x00f0 | frameStyle() の `Shadow ` 部分 |
QFrame::Shape_Mask | 0x000f | frameStyle() の「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.