Sur cette page

QFrame Class

La classe QFrame est la classe de base des widgets pouvant comporter un cadre. En savoir plus...

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

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 cette fonction pour « faire ressortir » le menu au-dessus de l'écran qui l'entoure. QProgressBar présente un aspect « en creux ». QLabel présente un aspect plat. Les cadres de widgets comme ceux-ci 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 de remplacement sans aucun contenu.

Le style du cadre est défini par les propriétés ` frame shape ` et ` shadow style `, qui servent à séparer visuellement le cadre des widgets environnants. Ces propriétés peuvent être définies conjointement à 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 « frame » possède trois attributs qui décrivent l'épaisseur de la bordure : lineWidth, midLineWidth et frameWidth.

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

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

Ce tableau présente quelques-unes des combinaisons de styles et d’épaisseurs de ligne :

Tableau des styles de montures

Type de membre Documentation

enum QFrame::Shadow

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

ConstanteValeurDescription
QFrame::Plain0x0010le cadre et son contenu apparaissent au même niveau que l’arrière-plan ; le dessin s’effectue à l’aide de la couleur de la palette « QPalette::WindowText » (sans effet 3D)
QFrame::Raised0x0020le cadre et son contenu semblent en relief ; dessine une ligne en relief 3D à l'aide des couleurs claires et foncées du groupe de couleurs actuel
QFrame::Sunken0x0030le cadre et le contenu apparaissent en creux ; dessine une ligne en creux 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’illustration des cadres dans la documentation de la classe principale.

Voir également 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 un cadre autour de son contenu
QFrame::Panel0x0002QFrame dessine un panneau pour donner l'impression que le contenu est en relief ou en creux
QFrame::StyledPanel0x0006dessine un panneau rectangulaire dont l'apparence dépend du style actuel de l'interface graphique. 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 pouvant être en relief ou en creux, comme ceux de Windows 2000. La spécification de cette forme définit la largeur de la ligne à 2 pixels. WinPanel est fourni à des fins de compatibilité. Pour une indépendance vis-à-vis du style de l'interface graphique, nous recommandons d'utiliser StyledPanel à la place.

Lorsqu’il n’appelle pas ` QStyle`, `Shape` interagit avec ` QFrame::Shadow`, la méthode ` lineWidth()` et la méthode ` midLineWidth()` pour créer le résultat final. Voir l’illustration 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 permettant d'extraire les deux composantes de ` frameStyle()` :

ConstanteValeurDescription
QFrame::Shadow_Mask0x00f0La partie « Shadow » de la fonction « frameStyle() »
QFrame::Shape_Mask0x000fLa partie « Shape » de frameStyle()

En règle générale, vous n’avez pas besoin de les utiliser, car les fonctions frameShadow() et frameShape() extraient déjà les parties Shadow et Shape de la fonction frameStyle().

Voir également frameStyle() et setFrameStyle().

Documentation sur les propriétés

frameRect : QRect

Cette propriété contient le rectangle du cadre

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

Si vous définissez le rectangle sur un rectangle nul (par exemple, QRect(0, 0, 0, 0)), le rectangle du cadre obtenu est alors équivalent à celui de l’ 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, issue du style du 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 définie dans le style du 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 de l'frame style, et non pas uniquement de l'épaisseur de la ligne et de l'épaisseur de la ligne médiane. Par exemple, le style spécifié par NoFrame a toujours une largeur de cadre égale à 0, tandis que le style Panel a une largeur de cadre équivalente à l'épaisseur de la 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 totale des lignes 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 sur les fonctions membres

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

Crée un widget « frame » 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 également setFrameStyle(), frameShape() et frameShadow().

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

Initialise ` option ` avec les valeurs provenant de cette page : QFrame. Cette méthode est utile pour les sous-classes qui ont besoin d'un ` QStyleOptionFrame `, mais ne souhaitent pas renseigner elles-mêmes toutes les informations.

Voir également 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 sur « style ».

style correspond à la somme logique (OU) entre une forme de cadre et un style d'ombre de cadre. Reportez-vous à l'illustration des cadres dans la documentation de la classe principale.

Les formes de cadre sont indiqué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 tracer les lignes médianes.

Voir également frameStyle().

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

Réimplémente une fonction d'accès pour 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.