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 :

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.
| Constante | Valeur | Description |
|---|---|---|
QFrame::Plain | 0x0010 | le 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::Raised | 0x0020 | le 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::Sunken | 0x0030 | le 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.
| Constante | Valeur | Description |
|---|---|---|
QFrame::NoFrame | 0 | QFrame ne dessine rien |
QFrame::Box | 0x0001 | QFrame dessine une boîte autour de son contenu |
QFrame::Panel | 0x0002 | QFrame dessine un panneau pour que son contenu apparaisse en relief ou en creux |
QFrame::StyledPanel | 0x0006 | dessine 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::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 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() :
| Constante | Valeur | Description |
|---|---|---|
QFrame::Shadow_Mask | 0x00f0 | La partie Shadow de frameStyle() |
QFrame::Shape_Mask | 0x000f | La 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.