QFrame Class

QFrameクラスは、フレームを持つことができるウィジェットの基本クラスです。詳細...

Header: #include <QFrame>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QWidget
Inherited By:

QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget, and 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の沈んだ線を描きます。

Shadowは、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() は、すでにframeStyle() のShadowShape の部分を抽出しているので、通常はこれらを使用する必要はない。

frameStyle() およびsetFrameStyle()も参照

プロパティ Documentation

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

本書に含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。