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 :

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.
| Constante | Valeur | Description |
|---|---|---|
QFrame::Plain | 0x0010 | le 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::Raised | 0x0020 | le 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::Sunken | 0x0030 | le 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.
| Constante | Valeur | Description |
|---|---|---|
QFrame::NoFrame | 0 | QFrame ne dessine rien |
QFrame::Box | 0x0001 | QFrame dessine un cadre autour de son contenu |
QFrame::Panel | 0x0002 | QFrame dessine un panneau pour donner l'impression que le contenu est en relief ou en creux |
QFrame::StyledPanel | 0x0006 | dessine un panneau rectangulaire dont l'apparence dépend du style actuel de l'interface graphique. Il peut être en relief ou en creux. |
QFrame::HLine | 0x0004 | QFrame dessine une ligne horizontale qui n'encadre rien (utile comme séparateur) |
QFrame::VLine | 0x0005 | QFrame dessine une ligne verticale qui n'encadre rien (utile comme séparateur) |
QFrame::WinPanel | 0x0003 | dessine 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()` :
| Constante | Valeur | Description |
|---|---|---|
QFrame::Shadow_Mask | 0x00f0 | La partie « Shadow » de la fonction « frameStyle() » |
QFrame::Shape_Mask | 0x000f | La 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.