Sur cette page

QFrame Class

La classe QFrame est la classe de base des widgets qui peuvent avoir un cadre. Plus d'informations...

En-tête : #include <QFrame>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Hérite : QWidget
Inherited By :

QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget, et QToolBox

Types publics

enum Shadow { Plain, Raised, Sunken }
enum Shape { NoFrame, Box, Panel, StyledPanel, HLine, …, WinPanel }
enum StyleMask { Shadow_Mask, Shape_Mask }

Propriétés

Fonctions publiques

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)

Fonctions publiques réimplémentées

virtual QSize sizeHint() const override

Fonctions protégées

virtual void initStyleOption(QStyleOptionFrame *option) const

Fonctions protégées réimplémentées

virtual void changeEvent(QEvent *ev) override
virtual bool event(QEvent *e) override
virtual void paintEvent(QPaintEvent *) override

Description détaillée

QMenu utilise ceci pour "élever" le menu au-dessus de l'écran environnant. QProgressBar a un aspect "enfoncé". QLabel a un aspect plat. Les cadres de ces widgets peuvent être modifiés.

QLabel label(...);
label.setFrameStyle(QFrame::Panel | QFrame::Raised);
label.setLineWidth(2);

QProgressBar pbar(...);
label.setFrameStyle(QFrame::NoFrame);

La classe QFrame peut également être utilisée directement pour créer de simples cadres sans contenu.

Le style du cadre est spécifié par les propriétés frame shape et shadow style qui sont utilisées pour séparer visuellement le cadre des widgets environnants. Ces propriétés peuvent être définies ensemble à l'aide de la fonction setFrameStyle() et lues avec frameStyle().

Les formes de cadre sont NoFrame, Box, Panel, StyledPanel, HLine et VLine; les styles d'ombre sont Plain, Raised et Sunken.

Un widget de cadre possède trois attributs qui décrivent l'épaisseur de la bordure : lineWidth, midLineWidth, et frameWidth.

  • La largeur de ligne est la largeur de la bordure du cadre. Elle peut être modifiée pour personnaliser l'apparence du cadre.
  • La largeur de la ligne médiane spécifie la largeur d'une ligne supplémentaire au milieu du cadre, qui utilise une troisième couleur pour obtenir un effet 3D spécial. Notez qu'une ligne médiane n'est dessinée que pour les cadres Box, HLine et VLine qui sont surélevés ou en creux.
  • La largeur du cadre est déterminée par le style du cadre et la fonction frameWidth() est utilisée pour obtenir la valeur définie pour le style utilisé.

La marge entre le cadre et le contenu du cadre peut être personnalisée à l'aide de la fonction QWidget::setContentsMargins().

Ce tableau présente certaines des combinaisons de styles et de largeurs de ligne :

Tableau des styles de cadres

Membre Type Documentation

enum QFrame::Shadow

Ce type d'énumération définit les types d'ombre utilisés pour donner un effet 3D aux images.

ConstanteValeurDescription
QFrame::Plain0x0010le cadre et son contenu apparaissent au même niveau que l'environnement ; le dessin utilise la couleur de la palette QPalette::WindowText (sans effet 3D)
QFrame::Raised0x0020le cadre et son contenu apparaissent en relief ; dessine une ligne 3D en relief en utilisant les couleurs claires et foncées du groupe de couleurs actuel
QFrame::Sunken0x0030le cadre et le contenu apparaissent enfoncés ; dessine une ligne enfoncée en 3D en utilisant les couleurs claires et foncées du groupe de couleurs actuel.

L'ombre interagit avec QFrame::Shape, lineWidth() et midLineWidth(). Voir l'image des cadres dans la documentation de la classe principale.

Voir aussi QFrame::Shape, lineWidth(), et midLineWidth().

enum QFrame::Shape

Ce type d'énumération définit les formes de cadre disponibles.

ConstanteValeurDescription
QFrame::NoFrame0QFrame ne dessine rien
QFrame::Box0x0001QFrame dessine une boîte autour de son contenu
QFrame::Panel0x0002QFrame dessine un panneau pour que son contenu apparaisse en relief ou en creux
QFrame::StyledPanel0x0006dessine un panneau rectangulaire dont l'aspect dépend du style de l'interface graphique en cours. Il peut être en relief ou en creux.
QFrame::HLine0x0004QFrame dessine une ligne horizontale qui n'encadre rien (utile comme séparateur)
QFrame::VLine0x0005QFrame dessine une ligne verticale qui n'encadre rien (utile comme séparateur)
QFrame::WinPanel0x0003dessine un panneau rectangulaire qui peut être en relief ou en creux, comme ceux de Windows 2000. La spécification de cette forme fixe la largeur de la ligne à 2 pixels. WinPanel est fourni à des fins de compatibilité. Pour l'indépendance du style de l'interface graphique, nous recommandons d'utiliser StyledPanel à la place.

Lorsqu'il n'appelle pas QStyle, Shape interagit avec QFrame::Shadow, lineWidth() et midLineWidth() pour créer le résultat total. Voir l'image des cadres dans la documentation de la classe principale.

Voir également QFrame::Shadow, QFrame::style(), et QStyle::drawPrimitive().

enum QFrame::StyleMask

Cette énumération définit deux constantes qui peuvent être utilisées pour extraire les deux composantes de frameStyle() :

ConstanteValeurDescription
QFrame::Shadow_Mask0x00f0La partie Shadow de frameStyle()
QFrame::Shape_Mask0x000fLa partie Shape de frameStyle()

Normalement, vous n'avez pas besoin de les utiliser, puisque frameShadow() et frameShape() extraient déjà les parties Shadow et Shape de frameStyle().

Voir aussi frameStyle() et setFrameStyle().

Documentation sur les propriétés

frameRect : QRect

Cette propriété contient le rectangle du cadre

Le rectangle du cadre est le rectangle dans lequel le cadre est dessiné. Par défaut, il s'agit de l'ensemble du widget. La définition du rectangle n ' entraîne pas de mise à jour du widget. Le rectangle du cadre est automatiquement ajusté lorsque le widget change de taille.

Si vous définissez le rectangle sur un rectangle nul (par exemple, QRect(0, 0, 0, 0)), le rectangle du cadre qui en résulte est équivalent au rectangle widget rectangle.

Fonctions d'accès :

QRect frameRect() const
void setFrameRect(const QRect &)

frameShadow : Shadow

Cette propriété contient la valeur de l'ombre du cadre du style de cadre

Fonctions d'accès :

QFrame::Shadow frameShadow() const
void setFrameShadow(QFrame::Shadow)

Voir également frameStyle() et frameShape().

frameShape : Shape

Cette propriété contient la valeur de la forme du cadre provenant du style de cadre

Fonctions d'accès :

QFrame::Shape frameShape() const
void setFrameShape(QFrame::Shape)

Voir également frameStyle() et frameShadow().

[read-only] frameWidth : int

Cette propriété définit la largeur du cadre dessiné.

Notez que la largeur du cadre dépend du style frame style, et pas seulement de la largeur de la ligne et de la largeur de la ligne médiane. Par exemple, le style spécifié par NoFrame a toujours une largeur de cadre de 0, alors que le style Panel a une largeur de cadre équivalente à la largeur de ligne.

Fonctions d'accès :

int frameWidth() const

Voir également lineWidth(), midLineWidth() et frameStyle().

lineWidth : int

Cette propriété définit la largeur de la ligne

Notez que la largeur de ligne totale pour les cadres utilisés comme séparateurs (HLine et VLine) est spécifiée par frameWidth.

La valeur par défaut est 1.

Fonctions d'accès :

int lineWidth() const
void setLineWidth(int)

Voir également midLineWidth et frameWidth.

midLineWidth : int

Cette propriété définit la largeur de la ligne médiane

La valeur par défaut est 0.

Fonctions d'accès :

int midLineWidth() const
void setMidLineWidth(int)

Voir également lineWidth et frameWidth.

Documentation des fonctions membres

[explicit] QFrame::QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

Construit un widget de cadre avec le style de cadre NoFrame et une largeur de cadre de 1 pixel.

Les arguments parent et f sont transmis au constructeur QWidget.

[virtual noexcept] QFrame::~QFrame()

Détruit le cadre.

[override virtual protected] void QFrame::changeEvent(QEvent *ev)

Réimplémente : QWidget::changeEvent(QEvent *event).

[override virtual protected] bool QFrame::event(QEvent *e)

Réimplémente : QWidget::event(QEvent *event).

int QFrame::frameStyle() const

Renvoie le style du cadre.

La valeur par défaut est QFrame::Plain.

Voir aussi setFrameStyle(), frameShape() et frameShadow().

[virtual protected] void QFrame::initStyleOption(QStyleOptionFrame *option) const

Initialise option avec les valeurs de QFrame. Cette méthode est utile pour les sous-classes qui ont besoin de QStyleOptionFrame mais qui ne veulent pas remplir toutes les informations elles-mêmes.

Voir aussi QStyleOption::initFrom().

[override virtual protected] void QFrame::paintEvent(QPaintEvent *)

Réimplémente : QWidget::paintEvent(QPaintEvent *event).

void QFrame::setFrameStyle(int style)

Définit le style de cadre à style.

style est le OU binaire entre une forme de cadre et un style d'ombre de cadre. Voir l'image des cadres dans la documentation de la classe principale.

Les formes de cadre sont données dans QFrame::Shape et les styles d'ombre dans QFrame::Shadow.

Si une largeur de ligne médiane supérieure à 0 est spécifiée, une ligne supplémentaire est tracée pour les cadres Raised ou Sunken Box , HLine, et VLine. La couleur médiane du groupe de couleurs actuel est utilisée pour dessiner les lignes médianes.

Voir également frameStyle().

[override virtual] QSize QFrame::sizeHint() const

Réimplémente une fonction d'accès à la propriété : 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.