Sur cette page

QWidget Class

La classe QWidget est la classe de base de tous les objets d'interface utilisateur. En savoir plus...

Types publics

enum RenderFlag { DrawWindowBackground, DrawChildren, IgnoreMask }
flags RenderFlags

Propriétés

Fonctions publiques

QWidget(QWidget*parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
virtuel ~QWidget()
bool acceptDrops() const
QString accessibleDescription() const
QString accessibleIdentifier() const
QString accessibleName() const
QList<QAction *> actions() const
void activateWindow()
void addAction(QAction*action)
(since 6.3) QAction *addAction(const QString&text)
(since 6.3) QAction *addAction(const QIcon&icône, const QString&texte)
(since 6.3) QAction *addAction(const QString&text, const QKeySequence&shortcut)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text, const QKeySequence&shortcut)
(since 6.3) QAction *addAction(const QString&text, Args &&... args)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text, Args &&... args)
(since 6.3) QAction *addAction(const QString&text, const QKeySequence&shortcut, Args &&... args)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text, const QKeySequence&shortcut, Args &&... args)
(since 6.3) QAction *addAction(const QString&text, const QObject*receiver, const char*member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text, const QObject*receiver, const char*member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QString&text, const QKeySequence&shortcut, const QObject*receiver, const char*member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QIcon&icon, const QString&text, const QKeySequence&shortcut, const QObject*receiver, const char*member, Qt::ConnectionType type = Qt::AutoConnection)
void addActions(const QList<QAction *>&actions)
void adjustSize()
bool autoFillBackground() const
QPalette::ColorRole backgroundRole() const
QBackingStore *backingStore() const
QSize baseSize() const
QWidget *childAt(int x, int y) const
QWidget *childAt(const QPoint&p) const
(since 6.8) QWidget *childAt(const QPointF&p) const
QRect childrenRect() const
QRegion childrenRegion() const
void clearFocus()
void clearMask()
QMargins contentsMargins() const
QRect contentsRect() const
Qt::ContextMenuPolicy contextMenuPolicy() const
QCursor cursor() const
WId effectiveWinId() const
void ensurePolished() const
Qt::FocusPolicy focusPolicy() const
QWidget *focusProxy() const
QWidget *focusWidget() const
const QFont &font() const
QFontInfo fontInfo() const
QFontMetrics fontMetrics() const
QPalette::ColorRole foregroundRole() const
QRect frameGeometry() const
QSize frameSize() const
const QRect &geometry() const
QPixmap grab(const QRect&rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))
void grabGesture(Qt::GestureType geste, Qt::GestureFlags indicateurs = Qt::GestureFlags())
void grabKeyboard()
void grabMouse()
void grabMouse(const QCursor&cursor)
int grabShortcut(const QKeySequence&key, Qt::ShortcutContext context = Qt::WindowShortcut)
QGraphicsEffect *graphicsEffect() const
QGraphicsProxyWidget *graphicsProxyWidget() const
bool hasFocus() const
bool virtuel hasHeightForWidth() const
bool hasMouseTracking() const
bool hasTabletTracking() const
int height() const
virtual int heightForWidth(int w) const
Qt::InputMethodHints inputMethodHints() const
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const
void insertAction(QAction*before, QAction*action)
void insertActions(QAction*before, const QList<QAction *>&actions)
bool isActiveWindow() const
bool isAncestorOf(const QWidget*child) const
bool isEnabled() const
bool isEnabledTo(const QWidget*ancêtre) const
bool isFullScreen() const
bool isHidden() const
bool isMaximized() const
bool isMinimized() const
bool isModal() const
bool isVisible() const
bool isVisibleTo(const QWidget*ancestor) const
bool isWindow() const
bool isWindowModified() const
QLayout *layout() const
Qt::LayoutDirection layoutDirection() const
QLocale locale() const
(since 6.0) QPointF mapFrom(const QWidget*parent, const QPointF&pos) const
QPoint mapFrom(const QWidget*parent, const QPoint&pos) const
(since 6.0) QPointF mapFromGlobal(const QPointF&pos) const
QPoint mapFromGlobal(const QPoint&pos) const
(since 6.0) QPointF mapFromParent(const QPointF&pos) const
QPoint mapFromParent(const QPoint&pos) const
(since 6.0) QPointF mapTo(const QWidget*parent, const QPointF&pos) const
QPoint mapTo(const QWidget*parent, const QPoint&pos) const
(since 6.0) QPointF mapToGlobal(const QPointF&pos) const
QPoint mapToGlobal(const QPoint&pos) const
(since 6.0) QPointF mapToParent(const QPointF&pos) const
QPoint mapToParent(const QPoint&pos) const
QRegion mask() const
int maximumHeight() const
QSize maximumSize() const
int maximumWidth() const
int minimumHeight() const
QSize minimumSize() const
virtual QSize minimumSizeHint() const
int minimumWidth() const
void move(int x, int y)
void move(const QPoint &)
QWidget *nativeParentWidget() const
QWidget *nextInFocusChain() const
QRect normalGeometry() const
void overrideWindowFlags(Qt::WindowFlags flags)
const QPalette &palette() const
QWidget *parentWidget() const
QPoint pos() const
QWidget *previousInFocusChain() const
QRect rect() const
void releaseKeyboard()
void releaseMouse()
void releaseShortcut(int id)
void removeAction(QAction*action)
void render(QPaintDevice*target, const QPoint&targetOffset = QPoint(), const QRegion&sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
void render(QPainter*painter, const QPoint&targetOffset = QPoint(), const QRegion&sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
void repaint(const QRect&rect)
void repaint(const QRegion&rgn)
void repaint(int x, int y, int w, int h)
void resize(int w, int h)
void resize(const QSize &)
bool restoreGeometry(const QByteArray&géométrie)
QByteArray saveGeometry() const
QScreen *screen() const
void scroll(int dx, int dy)
void scroll(int dx, int dy, const QRect&r)
void setAcceptDrops(bool on)
void setAccessibleDescription(const QString&description)
void setAccessibleIdentifier(const QString&identifiant)
void setAccessibleName(const QString&nom)
void setAttribute(Qt::WidgetAttribute attribut, bool on = true)
void setAutoFillBackground(bool enabled)
void setBackgroundRole(QPalette::ColorRole role)
void setBaseSize(const QSize &)
void setBaseSize(int basew, int baseh)
void setContentsMargins(int gauche, int haut, int droite, int bas)
void setContentsMargins(const QMargins&margins)
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)
void setCursor(const QCursor &)
void setFixedHeight(int h)
void setFixedSize(const QSize&s)
void setFixedSize(int w, int h)
void setFixedWidth(int w)
void setFocus(Qt::FocusReason raison)
void setFocusPolicy(Qt::FocusPolicy policy)
void setFocusProxy(QWidget*w)
void setFont(const QFont &)
void setForegroundRole(QPalette::ColorRole role)
void setGeometry(int x, int y, int w, int h)
void setGeometry(const QRect &)
void setGraphicsEffect(QGraphicsEffect*effet)
void setInputMethodHints(Qt::InputMethodHints hints)
void setLayout(QLayout*layout)
void setLayoutDirection(Qt::LayoutDirection direction)
void setLocale(const QLocale&locale)
void setMask(const QBitmap&bitmap)
void setMask(const QRegion&region)
void setMaximumHeight(int maxh)
void setMaximumSize(const QSize &)
void setMaximumSize(int maxw, int maxh)
void setMaximumWidth(int maxw)
void setMinimumHeight(int minh)
void setMinimumSize(const QSize &)
void setMinimumSize(int minw, int minh)
void setMinimumWidth(int minw)
void setMouseTracking(bool enable)
void setPalette(const QPalette &)
void setParent(QWidget*parent)
void setParent(QWidget*parent, Qt::WindowFlags f)
void setScreen(QScreen*écran)
void setShortcutAutoRepeat(int id, bool enable = true)
void setShortcutEnabled(int id, bool enable = true)
void setSizeIncrement(const QSize &)
void setSizeIncrement(int w, int h)
void setSizePolicy(QSizePolicy)
void setSizePolicy(QSizePolicy::Policy horizontale, QSizePolicy::Policy verticale)
void setStatusTip(const QString &)
void setStyle(QStyle*style)
void setTabletTracking(bool enable)
void setToolTip(const QString &)
void setToolTipDuration(int msec)
void setUpdatesEnabled(bool enable)
void setWhatsThis(const QString &)
void setWindowFilePath(const QString&filePath)
void setWindowFlag(Qt::WindowType flag, bool on = true)
void setWindowFlags(Qt::WindowFlags type)
void setWindowIcon(const QIcon&icon)
void setWindowModality(Qt::WindowModality windowModality)
void setWindowOpacity(qreal level)
void setWindowRole(const QString&role)
void setWindowState(Qt::WindowStates étatFenêtre)
void setupUi(QWidget*widget)
QSize size() const
virtual QSize sizeHint() const
QSize sizeIncrement() const
QSizePolicy sizePolicy() const
void stackUnder(QWidget*w)
QString statusTip() const
QStyle *style() const
QString styleSheet() const
bool testAttribute(Qt::WidgetAttribute attribut) const
QString toolTip() const
int toolTipDuration() const
bool underMouse() const
void ungrabGesture(Qt::GestureType geste)
void unsetCursor()
void unsetLayoutDirection()
void unsetLocale()
void update(const QRect&rect)
void update(const QRegion&rgn)
void update(int x, int y, int w, int h)
void updateGeometry()
bool updatesEnabled() const
QRegion visibleRegion() const
QString whatsThis() const
int width() const
WId winId() const
QWidget *window() const
QString windowFilePath() const
Qt::WindowFlags windowFlags() const
QWindow *windowHandle() const
QIcon windowIcon() const
Qt::WindowModality windowModality() const
qreal windowOpacity() const
QString windowRole() const
Qt::WindowStates windowState() const
QString windowTitle() const
Qt::WindowType windowType() const
int x() const
int y() const

Fonctions publiques réimplémentées

virtual QPaintEngine *paintEngine() const override

Slots publics

bool close()
void hide()
void lower()
void raise()
void repaint()
void setDisabled(bool disable)
void setEnabled(bool)
void setFocus()
void setHidden(bool hidden)
void setStyleSheet(const QString &styleSheet)
virtual void setVisible(bool visible)
void setWindowModified(bool)
void setWindowTitle(const QString &)
void show()
void showFullScreen()
void showMaximized()
void showMinimized()
void showNormal()
void update()

Signaux

void customContextMenuRequested(const QPoint &pos)
void windowIconChanged(const QIcon &icon)
void windowTitleChanged(const QString &title)

Membres publics statiques

QWidget *createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
QWidget *find(WId id)
QWidget *keyboardGrabber()
QWidget *mouseGrabber()
void setTabOrder(QWidget *first, QWidget *second)
(since 6.6) void setTabOrder(std::initializer_list<QWidget *> widgets)

Fonctions protégées

virtual void actionEvent(QActionEvent *event)
virtual void changeEvent(QEvent *event)
virtual void closeEvent(QCloseEvent *event)
virtual void contextMenuEvent(QContextMenuEvent *event)
void create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)
void destroy(bool destroyWindow = true, bool destroySubWindows = true)
virtual void dragEnterEvent(QDragEnterEvent *event)
virtual void dragLeaveEvent(QDragLeaveEvent *event)
virtual void dragMoveEvent(QDragMoveEvent *event)
virtual void dropEvent(QDropEvent *event)
virtual void enterEvent(QEnterEvent *event)
virtual void focusInEvent(QFocusEvent *event)
bool focusNextChild()
virtual bool focusNextPrevChild(bool next)
virtual void focusOutEvent(QFocusEvent *event)
bool focusPreviousChild()
virtual void hideEvent(QHideEvent *event)
virtual void inputMethodEvent(QInputMethodEvent *event)
virtual void keyPressEvent(QKeyEvent *event)
virtual void keyReleaseEvent(QKeyEvent *event)
virtual void leaveEvent(QEvent *event)
virtual void mouseDoubleClickEvent(QMouseEvent *event)
virtual void mouseMoveEvent(QMouseEvent *event)
virtual void mousePressEvent(QMouseEvent *event)
virtual void mouseReleaseEvent(QMouseEvent *event)
virtual void moveEvent(QMoveEvent *event)
virtual bool nativeEvent(const QByteArray &eventType, void *message, qintptr *result)
virtual void paintEvent(QPaintEvent *event)
virtual void resizeEvent(QResizeEvent *event)
virtual void showEvent(QShowEvent *event)
virtual void tabletEvent(QTabletEvent *event)
virtual void wheelEvent(QWheelEvent *event)

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

virtual bool event(QEvent*event) override
virtual void initPainter(QPainter*painter) const override
virtual int metric(QPaintDevice::PaintDeviceMetric m) const override

Slots protégés

void updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll)

Macros

Description détaillée

Le widget est l'élément constitutif de l'interface utilisateur : il reçoit les événements de souris, de clavier et autres provenant du système de fenêtres, et dessine sa propre représentation à l'écran. Chaque widget est rectangulaire, et les widgets sont classés selon un ordre de superposition (Z-order). Un widget est masqué par son parent et par les widgets situés devant lui.

Un widget qui n’est pas intégré à un widget parent est appelé « fenêtre ». En général, les fenêtres possèdent un cadre et une barre de titre, bien qu’il soit également possible de créer des fenêtres sans ces éléments décoratifs à l’aide d’ window flags s appropriées. Dans Qt, les classes ` QMainWindow ` et les différentes sous-classes de ` QDialog ` constituent les types de fenêtres les plus courants.

Le constructeur de chaque widget accepte un ou deux arguments standard :

  1. QWidget *parent = nullptr est le parent du nouveau widget. S’il s’agit de ` nullptr ` (valeur par défaut), le nouveau widget sera une fenêtre. Sinon, il sera un enfant de `parent` et sera contraint par la géométrie de ce dernier(à moins que vous ne spécifiiez ` Qt::Window ` comme indicateur de fenêtre).
  2. Qt::WindowFlags f = { } (le cas échéant) définit les indicateurs de fenêtre ; la valeur par défaut convient à la plupart des widgets, mais pour obtenir, par exemple, une fenêtre sans cadre du système de fenêtrage, vous devez utiliser des indicateurs spéciaux.

QWidget dispose de nombreuses fonctions membres, mais certaines d’entre elles n’ont que peu de fonctionnalité directe ; par exemple, QWidget possède une propriété « font », mais ne l’utilise jamais lui-même. Il existe de nombreuses sous-classes qui fournissent des fonctionnalités réelles, telles que QLabel, QPushButton, QListWidget et QTabWidget.

Widgets de niveau supérieur et widgets enfants

Un widget sans widget parent est toujours une fenêtre indépendante (widget de niveau supérieur). Pour ces widgets, les méthodes setWindowTitle() et setWindowIcon() définissent respectivement la barre de titre et l’icône.

Les widgets qui ne sont pas des fenêtres sont des widgets enfants, affichés à l’intérieur de leurs widgets parents. La plupart des widgets de Qt sont principalement utiles en tant que widgets enfants. Par exemple, il est possible d’afficher un bouton en tant que fenêtre de niveau supérieur, mais la plupart des utilisateurs préfèrent placer leurs boutons à l’intérieur d’autres widgets, tels que QDialog.

Widget de prise de rendez-vous avec des widgets enfants étiquetés

Un widget parent contenant divers widgets enfants.

Le schéma ci-dessus montre un widget QGroupBox utilisé pour contenir divers widgets enfants dans une disposition fournie par QGridLayout. Les widgets enfants QLabel ont été mis en surbrillance pour indiquer leur taille réelle.

Si vous souhaitez utiliser un QWidget pour contenir des widgets enfants, vous devrez généralement ajouter une disposition au QWidget parent. Reportez-vous à la section Gestion des dispositions pour plus d’informations.

Widgets composites

Lorsqu’un widget est utilisé comme conteneur pour regrouper plusieurs widgets enfants, on parle de widget composite. Ceux-ci peuvent être créés en construisant un widget doté des propriétés visuelles requises — un QFrame, par exemple — et en y ajoutant des widgets enfants, généralement gérés par une disposition.

Les widgets composites peuvent également être créés en sous-classant un widget standard, tel que QWidget ou QFrame, et en ajoutant la disposition et les widgets enfants nécessaires dans le constructeur de la sous-classe. De nombreux exemples fournis avec Qt utilisent cette approche, qui est également abordée dans le tutoriel sur les widgets Qt Widgets.

Widgets personnalisés et dessin

QWidget étant une sous-classe d’ QPaintDevice, ses sous-classes peuvent être utilisées pour afficher du contenu personnalisé composé à l’aide d’une série d’opérations de dessin avec une instance de la classe ` QPainter `. Cette approche contraste avec l’approche de type « toile » utilisée par le Graphics View Framework, où les éléments sont ajoutés à une scène par l’application et rendus par le framework lui-même.

Chaque widget effectue toutes ses opérations de dessin au sein de sa fonction ` paintEvent()`. Celle-ci est appelée chaque fois que le widget doit être redessiné, soit en raison d’un changement externe, soit à la demande de l’application.

L’exemple « Analog Clock » montre comment un widget simple peut gérer les événements de dessin.

Indications de taille et politiques de taille

Lors de l’implémentation d’un nouveau widget, il est presque toujours utile de réimplémenter la méthode ` sizeHint()` afin de fournir une taille par défaut raisonnable au widget et de définir la politique de taille appropriée à l’aide de la méthode ` setSizePolicy()`.

Par défaut, les widgets composites qui ne fournissent pas d’indication de taille seront dimensionnés en fonction des besoins en espace de leurs widgets enfants.

La politique de taille vous permet de fournir un bon comportement par défaut au système de gestion de la mise en page, afin que d’autres widgets puissent facilement contenir et gérer le vôtre. La politique de taille par défaut indique que l’indication de taille représente la taille préférée du widget, ce qui est souvent suffisant pour de nombreux widgets.

Remarque : la taille des widgets de niveau supérieur est limitée à 2/3 de la hauteur et de la largeur du bureau. Vous pouvez définir manuellement la taille du widget à l’aide de la méthode ` resize()` si ces limites ne sont pas suffisantes.

Événements

Les widgets réagissent aux événements généralement provoqués par les actions de l’utilisateur. Qt transmet les événements aux widgets en appelant des fonctions de gestion d’événements spécifiques, avec des instances de sous-classes de ` QEvent ` contenant des informations sur chaque événement.

Si votre widget ne contient que des widgets enfants, vous n’avez probablement pas besoin d’implémenter de gestionnaires d’événements. Si vous souhaitez détecter un clic de souris dans un widget enfant, appelez la fonction ` underMouse()` de l’enfant à l’intérieur de la fonction ` mousePressEvent()` du widget.

L’exemple Scribble implémente un ensemble plus large d’événements pour gérer les mouvements de la souris, les clics sur les boutons et le redimensionnement de la fenêtre.

Vous devrez définir vous-même le comportement et le contenu de vos propres widgets, mais voici un bref aperçu des événements pertinents pour QWidget, en commençant par les plus courants :

  • paintEvent() est appelée chaque fois que le widget doit être rafraîchi. Tout widget affichant un contenu personnalisé doit l'implémenter. Le rafraîchissement à l'aide d'un ` QPainter ` ne peut avoir lieu que dans une méthode ` paintEvent()` ou dans une fonction appelée par ` paintEvent()`.
  • resizeEvent() est appelée lorsque le widget a été redimensionné.
  • mousePressEvent() est appelée lorsqu’un bouton de souris est enfoncé alors que le curseur de la souris se trouve à l’intérieur du widget, ou lorsque le widget a capturé la souris à l’aide de grabMouse(). Appuyer sur la souris sans la relâcher revient en effet à appeler grabMouse().
  • mouseReleaseEvent() est appelé lorsqu’un bouton de souris est relâché. Un widget reçoit des événements de relâchement de souris lorsqu’il a reçu l’événement de clic correspondant. Cela signifie que si l’utilisateur clique à l’intérieur de votre widget, puis fait glisser la souris ailleurs avant de relâcher le bouton, votre widget reçoit l’événement de relâchement. Il existe une exception : si un menu contextuel apparaît alors que le bouton de la souris est maintenu enfoncé, ce menu contextuel intercepte immédiatement les événements de souris.
  • mouseDoubleClickEvent() est appelée lorsque l’utilisateur double-clique dans le widget. Si l’utilisateur double-clique, le widget reçoit un événement de pression de souris, un événement de relâchement de souris (un événement de clic de souris), une deuxième pression de souris, cet événement et enfin un deuxième événement de relâchement de souris. (Certains événements de déplacement de la souris peuvent également être reçus si la souris n’est pas maintenue immobile pendant cette opération.) Il n’ est pas possible de distinguer un clic d’un double-clic avant que le deuxième clic n’arrive. (C’est l’une des raisons pour lesquelles la plupart des ouvrages sur les interfaces graphiques recommandent que les doubles-clics soient une extension des clics simples, plutôt que de déclencher une action différente.)

Les widgets qui acceptent les entrées clavier doivent réimplémenter quelques gestionnaires d’événements supplémentaires :

  • keyPressEvent() est appelé chaque fois qu’une touche est enfoncée, puis à nouveau lorsqu’une touche est maintenue enfoncée suffisamment longtemps pour déclencher la répétition automatique. Les touches « Tab » et « Shift+Tab » ne sont transmises au widget que si elles ne sont pas utilisées par les mécanismes de changement de focus. Pour forcer le traitement de ces touches par votre widget, vous devez réimplémenter QWidget::event().
  • focusInEvent() est appelée lorsque le widget obtient le focus clavier (en supposant que vous ayez appelé setFocusPolicy()). Les widgets bien conçus indiquent qu’ils détiennent le focus clavier de manière claire mais discrète.
  • focusOutEvent() est appelée lorsque le widget perd le focus clavier.

Vous devrez peut-être également réimplémenter certains gestionnaires d’événements moins courants :

  • mouseMoveEvent() est appelé chaque fois que la souris se déplace alors qu’un bouton est enfoncé. Cela peut s’avérer utile lors d’opérations de glisser-déposer. Si vous appelez setMouseTracking(true), vous recevez des événements de déplacement de la souris même lorsqu’aucun bouton n’est enfoncé. (Voir également le guide Glisser-déposer.)
  • keyReleaseEvent() est appelé chaque fois qu’une touche est relâchée et tant qu’elle est enfoncée (si la touche est en mode répétition automatique). Dans ce cas, le widget recevra une paire d’événements de relâchement et d’appui de touche pour chaque répétition. Les touches ` Tab ` et ` Shift+Tab ` ne sont transmises au widget que si elles ne sont pas utilisées par les mécanismes de changement de focus. Pour forcer le traitement de ces touches par votre widget, vous devez réimplémenter la méthode ` QWidget::event()`.
  • wheelEvent() est appelée chaque fois que l’utilisateur fait tourner la molette de la souris alors que le widget a le focus.
  • enterEvent() est appelée lorsque la souris entre dans l’espace d’affichage du widget. (Cela exclut l’espace d’affichage appartenant à l’un des enfants du widget.)
  • leaveEvent() est appelé lorsque la souris quitte l’espace d’affichage du widget. Si la souris pénètre dans un widget enfant, cela ne déclenche pas l’appel à leaveEvent().
  • moveEvent() est appelé lorsque le widget a été déplacé par rapport à son parent.
  • closeEvent() est appelé lorsque l’utilisateur ferme le widget (ou lorsque close() est appelé).

La documentation relative à ` QEvent::Type` décrit également certains événements assez obscurs. Pour gérer ces événements, vous devez réimplémenter directement la méthode ` event()`.

L’implémentation par défaut de ` event()` gère les événements ` Tab ` et ` Shift+Tab ` (pour déplacer le focus du clavier), et transmet la plupart des autres événements à l’un des gestionnaires plus spécialisés mentionnés ci-dessus.

Les événements et le mécanisme utilisé pour les transmettre sont abordés dans la section « Le système d’événements ».

Groupes de fonctions et de propriétés

ContexteFonctions et propriétés
Fonctions de fenêtreshow(), hide(), raise(), lower(), close().
Fenêtres de niveau supérieurwindowModified, windowTitle, windowIcon, isActiveWindow, activateWindow(), minimized, showMinimized(), maximized, showMaximized(), fullScreen, showFullScreen(), showNormal().
Contenu de la fenêtreupdate(), repaint(), scroll().
Géométriepos, x(), y(), rect, size, width(), height(), move(), resize(), sizePolicy, sizeHint(), minimumSizeHint(), updateGeometry(), layout(), frameGeometry, geometry, childrenRect, childrenRegion, adjustSize(), mapFromGlobal(), mapToGlobal(), mapFromParent(), mapToParent(), maximumSize, minimumSize, sizeIncrement, baseSize, setFixedSize()
Modevisible, isVisibleTo(), enabled, isEnabledTo(), modal, isWindow(), mouseTracking, updatesEnabled, visibleRegion().
Aspect et convivialitéstyle(), setStyle(), styleSheet, cursor, font, palette, backgroundRole(), setBackgroundRole(), fontInfo(), fontMetrics().
Fonctions de sélection au clavierfocus, focusPolicy, setFocus(), clearFocus(), setTabOrder(), setFocusProxy(), focusNextChild(), focusPreviousChild().
Prise de contrôle de la souris et du claviergrabMouse(), releaseMouse(), grabKeyboard(), releaseKeyboard(), mouseGrabber(), keyboardGrabber().
Gestionnaires d'événementsevent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), keyPressEvent(), keyReleaseEvent(), focusInEvent(), focusOutEvent(), wheelEvent(), enterEvent(), leaveEvent(), paintEvent(), moveEvent(), resizeEvent(), closeEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), childEvent(), showEvent(), hideEvent(), customEvent(). changeEvent(),
Fonctions systèmeparentWidget(), window(), setParent(), winId(), find(), metric().
Menu contextuelcontextMenuPolicy, contextMenuEvent(), customContextMenuRequested(), actions()
Aide interactivesetToolTip(), setWhatsThis()

Feuilles de style des widgets

Outre les styles de widgets standard pour chaque plateforme, les widgets peuvent également être stylisés selon les règles spécifiées dans une feuille de style style sheet. Cette fonctionnalité vous permet de personnaliser l’apparence de widgets spécifiques afin de fournir aux utilisateurs des indices visuels sur leur fonction. Par exemple, un bouton pourrait être stylisé d’une manière particulière pour indiquer qu’il effectue une action destructive.

L'utilisation des feuilles de style des widgets est décrite plus en détail dans le document « Qt Style Sheets ».

Transparence et double tampon

QWidget utilise automatiquement le double tampon pour son rendu ; il n’est donc pas nécessaire d’écrire de code de double tampon dans ` paintEvent()` pour éviter le scintillement.

Le contenu des widgets parents est propagé par défaut à chacun de leurs enfants tant que la méthode ` Qt::WA_PaintOnScreen ` n’est pas définie. Il est possible de créer des widgets personnalisés tirant parti de cette fonctionnalité en mettant à jour des zones irrégulières (pour créer des widgets enfants non rectangulaires) ou en effectuant le rendu avec des couleurs dont la composante alpha n’est pas maximale. Le schéma suivant illustre comment les attributs et les propriétés d’un widget personnalisé peuvent être ajustés avec précision pour obtenir différents effets.

Trois images bitmap représentant une maison avec différentes propriétés d'arrière-plan : transparent, rempli de blanc et non initialisé

Dans le schéma ci-dessus, un widget enfant rectangulaire semi-transparent, dont une partie de la surface a été supprimée, est créé et ajouté à un widget parent (un « QLabel » affichant une image pixmap). Ensuite, différentes propriétés et différents attributs de widget sont définis pour obtenir divers effets :

  • Le widget de gauche ne présente aucune propriété ni aucun attribut de widget supplémentaire défini. Cet état par défaut convient à la plupart des widgets personnalisés qui présentent une transparence, ont une forme irrégulière ou ne sont pas remplis sur toute leur surface avec un pinceau opaque.
  • Le widget du centre a la propriété « autoFillBackground » définie. Cette propriété est utilisée avec les widgets personnalisés qui s’appuient sur le widget pour fournir un arrière-plan par défaut et qui ne sont pas remplis sur toute leur surface avec un pinceau opaque.
  • Le widget de droite a l’attribut de widget ` Qt::WA_OpaquePaintEvent ` défini. Cela indique que le widget sera rempli sur toute sa surface avec des couleurs opaques. La surface du widget sera initialement non initialisée, représentée dans le schéma par un quadrillage diagonal rouge qui transparaît à travers la zone recouverte.

Pour mettre à jour rapidement des widgets personnalisés avec des couleurs d’arrière-plan simples, tels que les widgets de traçage ou de représentation graphique en temps réel, il est préférable de définir une couleur d’arrière-plan appropriée (à l’aide de ` setBackgroundRole()` avec le rôle ` QPalette::Window `), de définir la propriété ` autoFillBackground `, et de n’implémenter que les fonctionnalités de dessin nécessaires dans la méthode ` paintEvent()` du widget.

Pour mettre à jour rapidement des widgets personnalisés qui redessinent constamment l’intégralité de leur zone avec du contenu opaque, par exemple des widgets de streaming vidéo, il est préférable de définir la propriété ` Qt::WA_OpaquePaintEvent` du widget, afin d’éviter toute surcharge inutile liée au rafraîchissement de l’arrière-plan du widget.

Si un widget possède à la fois l’attribut ` Qt::WA_OpaquePaintEvent ` et la propriété ` autoFillBackground ` définis, l’attribut ` Qt::WA_OpaquePaintEvent ` prévaut. En fonction de vos besoins, vous devez choisir l’un ou l’autre.

Le contenu des widgets parents est également propagé aux Qt Widgets standard. Cela peut entraîner des résultats inattendus si le widget parent est décoré de manière non standard, comme le montre le schéma ci-dessous.

Un widget a un arrière-plan transparent et l'autre un arrière-plan rempli

Les possibilités de personnalisation du comportement de dessin des widgets Qt standard, sans recourir à la sous-classification, sont légèrement plus limitées que celles offertes pour les widgets personnalisés. En général, l’apparence souhaitée d’un widget standard peut être obtenue en définissant sa propriété ` autoFillBackground `.

Création de fenêtres translucides

Vous pouvez créer des fenêtres comportant des zones translucides sur les systèmes de fenêtrage prenant en charge la composition.

Pour activer cette fonctionnalité dans un widget de niveau supérieur, définissez son attribut ` Qt::WA_TranslucentBackground ` à l’aide de ` setAttribute()` et assurez-vous que son arrière-plan est dessiné avec des couleurs non opaques dans les zones que vous souhaitez rendre partiellement transparentes.

Remarques sur la plate-forme :

  • X11 : cette fonctionnalité nécessite l’utilisation d’un serveur X prenant en charge les visuels ARGB et d’un gestionnaire de fenêtres avec composition.
  • Windows : le widget doit avoir l’indicateur de fenêtre « Qt::FramelessWindowHint » activé pour que la translucidité fonctionne.
  • macOS : le widget doit avoir le drapeau de fenêtre « Qt::FramelessWindowHint » activé pour que la translucidité fonctionne.

Widgets natifs et widgets « étrangers »

Les widgets « étrangers » sont des widgets inconnus du système de fenêtrage. Ils ne sont pas associés à un descripteur de fenêtre natif. Cette fonctionnalité accélère considérablement le dessin et le redimensionnement des widgets, et élimine le scintillement.

Si vous souhaitez conserver l’ancien comportement avec les fenêtres natives, choisissez l’une des options suivantes :

  1. Utilisez l'QT_USE_NATIVE_WINDOWS=1 dans votre environnement.
  2. Définissez l’attribut ` Qt::AA_NativeWindows ` sur votre application. Tous les widgets deviendront alors des widgets natifs.
  3. Définissez l’attribut ` Qt::WA_NativeWindow ` sur les widgets : le widget lui-même et tous ses ancêtres deviendront natifs (à moins que ` Qt::WA_DontCreateNativeAncestors ` ne soit défini).
  4. Appelez ` QWidget::winId ` pour forcer l'utilisation d'une fenêtre native (ceci implique le point 3).
  5. Définissez l’attribut ` Qt::WA_PaintOnScreen ` pour forcer l’utilisation d’une fenêtre native (ce qui implique le point 3).

Voir également QEvent, QPainter, QGridLayout et QBoxLayout.

Documentation sur les types de membres

enum QWidget::RenderFlag
flags QWidget::RenderFlags

Cette énumération décrit comment afficher le widget lors de l'appel de la fonction ` QWidget::render()`.

ConstanteValeurDescription
QWidget::DrawWindowBackground0x1Si vous activez cette option, l'arrière-plan du widget est affiché dans la cible même si autoFillBackground n'est pas défini. Par défaut, cette option est activée.
QWidget::DrawChildren0x2Si vous activez cette option, les éléments enfants du widget sont affichés de manière récursive dans la cible. Par défaut, cette option est activée.
QWidget::IgnoreMask0x4Si vous activez cette option, la méthode ` QWidget::mask()` du widget est ignorée lors de l'affichage dans la cible. Par défaut, cette option est désactivée.

Le type RenderFlags est un typedef pour QFlags<RenderFlag>. Il stocke une combinaison OR de valeurs RenderFlag.

Documentation des propriétés

acceptDrops : bool

Cette propriété indique si les événements de dépôt sont activés pour ce widget

Définir cette propriété sur « true » indique au système que ce widget est susceptible d'accepter des événements de dépôt.

Avertissement : ne modifiezpas cette propriété dans un gestionnaire d'événements de glisser-déposer.

Par défaut, cette propriété est définie sur « false ».

Fonctions d'accès :

bool acceptDrops() const
void setAcceptDrops(bool on)

Voir aussi Glisser-déposer.

accessibleDescription : QString

Cette propriété contient la description du widget telle qu'elle est perçue par les technologies d'assistance

La description accessible d'un widget doit indiquer la fonction de ce dernier. Alors que l'accessibleName e doit être une chaîne courte et concise (par exemple « Enregistrer »), la description doit fournir davantage de contexte, par exemple « Enregistre le document actuel ».

Cette propriété doit être localisée.

Par défaut, cette propriété contient une chaîne vide et Qt utilise alors l’info-bulle pour fournir ces informations.

Fonctions d'accès :

QString accessibleDescription() const
void setAccessibleDescription(const QString &description)

Voir également ` QWidget::accessibleName ` et ` QAccessibleInterface::text()`.

[since 6.9] accessibleIdentifier : QString

Cette propriété contient l'identifiant du widget tel qu'il est perçu par les technologies d'assistance

Si elle est définie, l'identifiant accessible d'un widget peut être utilisé par les technologies d'assistance afin d'identifier un widget spécifique, par exemple dans le cadre de tests automatisés.

Cette énumération a été introduite dans Qt 6.9.

Fonctions d'accès :

QString accessibleIdentifier() const
void setAccessibleIdentifier(const QString &identifier)

accessibleName : QString

Cette propriété contient le nom du widget tel qu'il est perçu par les technologies d'assistance

Il s'agit du nom principal sous lequel les technologies d'assistance, telles que les lecteurs d'écran, annoncent ce widget. Pour la plupart des widgets, il n'est pas nécessaire de définir cette propriété. Par exemple, pour QPushButton, le texte du bouton sera utilisé.

Il est important de définir cette propriété lorsque le widget ne comporte aucun texte. Par exemple, un bouton ne comportant qu’une icône doit voir cette propriété définie pour fonctionner avec les lecteurs d’écran. Le nom doit être court et correspondre aux informations visuelles transmises par le widget.

Cette propriété doit être localisée.

Par défaut, cette propriété contient une chaîne vide.

Fonctions d’accès :

QString accessibleName() const
void setAccessibleName(const QString &name)

Voir également QWidget::accessibleDescription et QAccessibleInterface::text().

autoFillBackground : bool

Cette propriété détermine si l'arrière-plan du widget est rempli automatiquement

Si elle est activée, cette propriété oblige Qt à remplir l'arrière-plan du widget avant de déclencher l'événement de dessin. La couleur utilisée est définie par le rôle de couleur « QPalette::Window » issu de l'palette du widget.

De plus, les fenêtres sont toujours remplies avec « QPalette::Window », sauf si les attributs WA_OpaquePaintEvent ou WA_NoSystemBackground sont définis.

Cette propriété ne peut pas être désactivée (c'est-à-dire définie sur false) si le parent d'un widget possède un dégradé statique pour son arrière-plan.

Avertissement : utilisez cette propriété avec prudence en association avec les feuilles de style Qt. Lorsqu’un widget dispose d’une feuille de style comportant un arrière-plan valide ou une image de bordure, cette propriété est automatiquement désactivée.

Par défaut, cette propriété est définie sur « false ».

Fonctions d’accès :

bool autoFillBackground() const
void setAutoFillBackground(bool enabled)

Voir également Qt::WA_OpaquePaintEvent, Qt::WA_NoSystemBackground et Transparency and Double Buffering.

baseSize : QSize

Cette propriété contient la taille de base du widget

La taille de base sert à calculer la taille appropriée du widget si celui-ci définit la méthode ` sizeIncrement()`.

Par défaut, pour un widget nouvellement créé, cette propriété contient une taille avec une largeur et une hauteur égales à zéro.

Fonctions d'accès :

QSize baseSize() const
void setBaseSize(const QSize &)
void setBaseSize(int basew, int baseh)

Voir également setSizeIncrement().

[read-only] childrenRect : QRect

Cette propriété contient le rectangle englobant des éléments enfants du widget

Les enfants masqués sont exclus.

Par défaut, pour un widget sans enfants, cette propriété contient un rectangle de largeur et de hauteur nulles situé à l'origine.

Fonctions d'accès :

QRect childrenRect() const

Voir également childrenRegion() et geometry().

[read-only] childrenRegion : QRegion

Cette propriété contient la surface totale occupée par les éléments enfants du widget

Les enfants masqués sont exclus.

Par défaut, pour un widget sans enfants, cette propriété contient une région vide.

Fonctions d'accès :

QRegion childrenRegion() const

Voir également childrenRect(), geometry() et mask().

contextMenuPolicy : Qt::ContextMenuPolicy

Comment le widget affiche un menu contextuel

La valeur par défaut de cette propriété est « Qt::DefaultContextMenu », ce qui signifie que le gestionnaire « contextMenuEvent() » est appelé. Les autres valeurs possibles sont « Qt::NoContextMenu », « Qt::PreventContextMenu », « Qt::ActionsContextMenu » et « Qt::CustomContextMenu ». Avec « Qt::CustomContextMenu », le signal « customContextMenuRequested() » est émis.

Fonctions d'accès :

Qt::ContextMenuPolicy contextMenuPolicy() const
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)

Voir également contextMenuEvent(), customContextMenuRequested() et actions().

cursor : QCursor

Cette propriété définit la forme du curseur pour ce widget

Le curseur de la souris prendra cette forme lorsqu'il se trouvera au-dessus de ce widget. Consultez la page « list of predefined cursor objects » pour découvrir toute une gamme de formes utiles.

Un widget d'édition peut utiliser un curseur en « I » :

setCursor(Qt::IBeamCursor);

Si aucun curseur n’a été défini, ou après un appel à la fonction unsetCursor(), c’est le curseur du parent qui est utilisé.

Par défaut, cette propriété contient un curseur ayant la forme « Qt::ArrowCursor ».

Certaines implémentations de fenêtre sous-jacentes réinitialisent le curseur s’il quitte un widget, même si la souris est verrouillée. Si vous souhaitez qu’un curseur soit défini pour tous les widgets, même lorsqu’ils se trouvent en dehors de la fenêtre, envisagez d’utiliser la fonction QGuiApplication::setOverrideCursor().

Fonctions d’accès :

QCursor cursor() const
void setCursor(const QCursor &)
void unsetCursor()

Voir également ` QGuiApplication::setOverrideCursor()`.

enabled : bool

Cette propriété indique si le widget est activé

En général, un widget activé gère les événements clavier et souris ; un widget désactivé ne les gère pas. Une exception est prévue pour QAbstractButton.

Certains widgets s'affichent différemment lorsqu'ils sont désactivés. Par exemple, un bouton peut afficher son libellé en gris. Si votre widget a besoin de savoir quand il est activé ou désactivé, vous pouvez utiliser la méthode ` changeEvent()` avec le type ` QEvent::EnabledChange`.

La désactivation d’un widget désactive implicitement tous ses enfants. L’activation active respectivement tous les widgets enfants, à moins qu’ils n’aient été explicitement désactivés. Il n’est pas possible d’activer explicitement un widget enfant qui n’est pas une fenêtre tant que son widget parent reste désactivé.

Par défaut, cette propriété est définie sur « true ».

Fonctions d'accès :

bool isEnabled() const
void setEnabled(bool)

Voir également isEnabledTo(), QKeyEvent, QMouseEvent et changeEvent().

[read-only] focus : bool

Cette propriété indique si ce widget (ou son proxy de focus) détient le focus du clavier

Par défaut, cette propriété est définie sur false.

Remarque : obtenir la valeur de cette propriété pour un widget revient en fait à vérifier si QApplication::focusWidget() fait référence à ce widget.

Fonctions d'accès :

bool hasFocus() const

Voir également setFocus(), clearFocus(), setFocusPolicy() et QApplication::focusWidget().

focusPolicy : Qt::FocusPolicy

Cette propriété définit la manière dont le widget accepte le focus clavier

La politique est « Qt::TabFocus » si le widget accepte le focus clavier via la touche Tab, « Qt::ClickFocus » s'il l'accepte via un clic, « Qt::StrongFocus » s'il accepte les deux, et « Qt::NoFocus » (valeur par défaut) s'il n'accepte pas du tout le focus.

Vous devez activer le focus clavier pour un widget s’il traite des événements clavier. Cela se fait généralement depuis le constructeur du widget. Par exemple, le constructeur QLineEdit appelle setFocusPolicy(Qt::StrongFocus).

Si le widget dispose d’un proxy de focus, la politique de focus lui sera alors transmise.

Fonctions d’accès :

Qt::FocusPolicy focusPolicy() const
void setFocusPolicy(Qt::FocusPolicy policy)

Voir également focusInEvent(), focusOutEvent(), keyPressEvent(), keyReleaseEvent() et enabled.

font : QFont

Cette propriété contient la police actuellement définie pour le widget

Cette propriété décrit la police demandée par le widget. La police est utilisée par le style du widget lors du rendu des composants standard, et permet de garantir que les widgets personnalisés conservent une cohérence avec l'aspect et la convivialité de la plateforme native. Il est courant que différentes plateformes, ou différents styles, définissent des polices différentes pour une même application.

Lorsque vous attribuez une nouvelle police à un widget, les propriétés de cette police sont combinées avec celles de la police par défaut du widget pour former la police finale du widget. Vous pouvez appeler la méthode fontInfo() pour obtenir une copie de la police finale du widget. La police finale est également utilisée pour initialiser la police de QPainter.

La police par défaut dépend de l’environnement système. ` QApplication ` gère une police système/thème qui sert de valeur par défaut pour tous les widgets. Il peut également exister des polices par défaut spécifiques à certains types de widgets. Vous pouvez également définir vous-même des polices par défaut pour les widgets en passant une police personnalisée et le nom d’un widget à ` QApplication::setFont()`. Enfin, la police est comparée à la base de données de polices de Qt afin de trouver la meilleure correspondance.

QWidget La propagation des propriétés de police explicites s'effectue du parent vers les enfants. Si vous modifiez une propriété spécifique d’une police et que vous attribuez cette police à un widget, cette propriété sera propagée à tous les enfants du widget, remplaçant ainsi toute valeur par défaut du système pour cette propriété. Notez que, par défaut, les polices ne se propagent pas aux fenêtres (voir isWindow()) à moins que l’attribut Qt::WA_WindowPropagation ne soit activé.

QWidgetLa propagation des polices s’effectue de manière similaire à celle des palettes.

Le style actuel, qui sert à afficher le contenu de tous les Qt Widgets standard, est libre de choisir d’utiliser la police du widget ou, dans certains cas, de l’ignorer (partiellement ou totalement). En particulier, certains styles, tels que le style GTK, le style Mac et le style Windows Vista, appliquent des modifications spécifiques à la police du widget afin de s'adapter à l'aspect et à la convivialité natifs de la plateforme. De ce fait, l'attribution de propriétés à la police d'un widget ne garantit pas une modification de l'apparence de ce dernier. Vous pouvez plutôt choisir d'appliquer une feuille de style.

Remarque : si des feuilles de style Qt sont utilisées sur le même widget que la fonction `setFont()`, les feuilles de style prévaudront en cas de conflit entre les paramètres.

Fonctions d’accès :

const QFont &font() const
void setFont(const QFont &)

Voir également ` fontInfo()` et ` fontMetrics()`.

[read-only] frameGeometry : QRect

géométrie du widget par rapport à son parent, y compris le cadre de la fenêtre

Consultez la documentation sur la géométrie des fenêtres pour obtenir un aperçu des problèmes liés à la géométrie des fenêtres.

Par défaut, cette propriété contient une valeur qui dépend de la plate-forme de l'utilisateur et de la géométrie de l'écran.

Fonctions d’accès :

QRect frameGeometry() const

Voir également geometry(), x(), y() et pos().

[read-only] frameSize : QSize

Cette propriété indique la taille du widget, y compris le cadre de la fenêtre

Par défaut, cette propriété contient une valeur qui dépend de la plate-forme de l'utilisateur et de la géométrie de l'écran.

Fonctions d'accès :

QSize frameSize() const

[read-only] fullScreen : bool

Cette propriété indique si le widget s'affiche en mode plein écran

Un widget en mode plein écran occupe toute la surface de l'écran et n'affiche pas les éléments de décoration de la fenêtre, tels que la barre de titre.

Par défaut, cette propriété est définie sur « false ».

Fonctions d'accès :

bool isFullScreen() const

Voir également windowState(), minimized et maximized.

geometry : QRect

Cette propriété contient la géométrie du widget par rapport à son parent, à l'exclusion du cadre de la fenêtre

Si le widget est un widget de niveau supérieur (une fenêtre), sa géométrie est exprimée en coordonnées globales de l'écran.

Lors d’une modification de la géométrie, le widget, s’il est visible, reçoit immédiatement un événement de déplacement (moveEvent()) et/ou un événement de redimensionnement (resizeEvent()). Si le widget n’est pas visible à ce moment-là, il est garanti qu’il recevra les événements appropriés avant d’être affiché.

La composante « taille » est ajustée si elle se situe en dehors de la plage définie par minimumSize() et maximumSize().

Avertissement : l’appel de `setGeometry()` à l’intérieur de ` resizeEvent()` ou ` moveEvent()` peut entraîner une récursion infinie.

Consultez la documentation sur la géométrie des fenêtres pour obtenir un aperçu des problèmes de géométrie liés aux fenêtres.

Par défaut, cette propriété contient une valeur qui dépend de la plate-forme de l'utilisateur et de la géométrie de l'écran.

Fonctions d'accès :

const QRect &geometry() const
void setGeometry(int x, int y, int w, int h)
void setGeometry(const QRect &)

Voir également frameGeometry(), rect(), move(), resize(), moveEvent(), resizeEvent(), minimumSize() et maximumSize().

[read-only] height : int

Cette propriété contient la hauteur du widget, sans tenir compte du cadre de la fenêtre

Consultez la documentation sur la géométrie des fenêtres pour obtenir un aperçu des questions liées à la géométrie des fenêtres.

Par défaut, cette propriété contient une valeur qui dépend de la plate-forme de l'utilisateur et de l'screen geometry.

Fonctions d'accès :

int height() const

Voir également geometry, width et size.

inputMethodHints : Qt::InputMethodHints

Quels sont les conseils spécifiques à la méthode de saisie dont dispose le widget ?

Ceci ne concerne que les widgets de saisie. Ces informations sont utilisées par la méthode de saisie pour récupérer des indications sur la manière dont elle doit fonctionner. Par exemple, si l'indicateur « Qt::ImhFormattedNumbersOnly » est activé, la méthode de saisie peut modifier ses composants visuels pour indiquer que seuls des chiffres peuvent être saisis.

Avertissement : certains widgets nécessitent que certains indicateurs soient activés pour fonctionner comme prévu. Pour activer un indicateur, utilisez ` w->setInputMethodHints(w->inputMethodHints()|f) ` au lieu de ` w->setInputMethodHints(f)`.

Remarque : les indicateurs ne sont que des suggestions ; l’implémentation spécifique de la méthode de saisie est donc libre de les ignorer. Si vous souhaitez vous assurer qu’un certain type de caractères est saisi, vous devez également définir un indicateur « QValidator » sur le widget.

La valeur par défaut est Qt::ImhNone.

Fonctions d'accès :

Qt::InputMethodHints inputMethodHints() const
void setInputMethodHints(Qt::InputMethodHints hints)

Voir également inputMethodQuery().

[read-only] isActiveWindow : bool

Cette propriété indique si la fenêtre de ce widget est la fenêtre active

La fenêtre active est celle qui contient le widget ayant le focus clavier (la fenêtre peut tout de même avoir le focus si elle ne contient aucun widget ou si aucun de ses widgets n'accepte le focus clavier).

Lorsque des fenêtres contextuelles sont visibles, cette propriété prend la valeur « true » aussi bien pour la fenêtre active que pour la fenêtre contextuelle.

Par défaut, cette propriété est définie sur « false ».

Fonctions d'accès :

bool isActiveWindow() const

Voir également ` activateWindow()` et ` QApplication::activeWindow()`.

layoutDirection : Qt::LayoutDirection

Cette propriété définit le sens de mise en page de ce widget.

Remarque : depuis Qt 4.7,cette méthode n'affecte plus le sens de mise en page du texte.

Par défaut, cette propriété est définie sur « Qt::LeftToRight ».

Lorsque la direction de mise en page est définie sur un widget, elle se propage aux enfants de ce widget, mais pas à un enfant qui est une fenêtre ni à un enfant pour lequel la méthode setLayoutDirection() a été explicitement appelée. De plus, les widgets enfants ajoutés après l’appel de la méthode setLayoutDirection() sur le parent n’héritent pas de la direction de mise en page de ce dernier.

Fonctions d’accès :

Qt::LayoutDirection layoutDirection() const
void setLayoutDirection(Qt::LayoutDirection direction)
void unsetLayoutDirection()

Voir également QApplication::layoutDirection.

locale : QLocale

Cette propriété contient les paramètres régionaux du widget

Tant qu'aucune locale spécifique n'a été définie, il s'agit soit de la locale du parent, soit (si ce widget est un widget de niveau supérieur) de la locale par défaut.

Si le widget affiche des dates ou des nombres, ceux-ci doivent être formatés selon les paramètres régionaux du widget.

Fonctions d'accès :

QLocale locale() const
void setLocale(const QLocale &locale)
void unsetLocale()

Voir également QLocale et QLocale::setDefault().

[read-only] maximized : bool

Cette propriété s'applique que ce widget soit ou non agrandi

Cette propriété ne s'applique qu'aux fenêtres.

Remarque : en raison des limitations de certains systèmes de gestion de fenêtres, cette propriété ne renvoie pas toujours les résultats attendus (par exemple, si l'utilisateur sous X11 agrandit la fenêtre via le gestionnaire de fenêtres, Qt n'a aucun moyen de distinguer cette opération d'un simple redimensionnement). Cette situation devrait s'améliorer à mesure que les protocoles des gestionnaires de fenêtres évoluent.

Par défaut, cette propriété est définie sur « false ».

Fonctions d’accès :

bool isMaximized() const

Voir également windowState(), showMaximized(), visible, show(), hide(), showNormal() et minimized.

maximumHeight : int

Cette propriété contient la hauteur maximale du widget en pixels

Cette propriété correspond à la hauteur définie par la propriété « maximumSize ».

Par défaut, cette propriété a pour valeur 16777215.

Remarque : la définition de la macro « QWIDGETSIZE_MAX » limite la taille maximale des widgets.

Fonctions d'accès :

int maximumHeight() const
void setMaximumHeight(int maxh)

Voir également maximumSize et maximumWidth.

maximumSize : QSize

Cette propriété définit la taille maximale du widget en pixels

Le widget ne peut pas être redimensionné à une taille supérieure à sa taille maximale.

Par défaut, cette propriété contient une taille pour laquelle la largeur et la hauteur ont toutes deux la valeur 16777215.

Remarque : la définition de la macro ` QWIDGETSIZE_MAX ` limite la taille maximale des widgets.

Fonctions d'accès :

QSize maximumSize() const
void setMaximumSize(const QSize &)
void setMaximumSize(int maxw, int maxh)

Voir également maximumWidth, maximumHeight, minimumSize et sizeIncrement.

maximumWidth : int

Cette propriété contient la largeur maximale du widget en pixels

Cette propriété correspond à la largeur définie par la propriété « maximumSize ».

Par défaut, cette propriété a pour valeur 16777215.

Remarque : la définition de la macro « QWIDGETSIZE_MAX » limite la taille maximale des widgets.

Fonctions d'accès :

int maximumWidth() const
void setMaximumWidth(int maxw)

Voir également maximumSize et maximumHeight.

[read-only] minimized : bool

Cette propriété s'applique que ce widget soit minimisé (réduit en icône) ou non

Cette propriété ne s'applique qu'aux fenêtres.

Par défaut, cette propriété est définie sur « false ».

Fonctions d'accès :

bool isMinimized() const

Voir également showMinimized(), visible, show(), hide(), showNormal() et maximized.

minimumHeight : int

Cette propriété stocke la hauteur minimale du widget en pixels

Cette propriété correspond à la hauteur définie par la propriété « minimumSize ».

Par défaut, cette propriété a une valeur de 0.

Fonctions d'accès :

int minimumHeight() const
void setMinimumHeight(int minh)

Voir également minimumSize et minimumWidth.

minimumSize : QSize

Cette propriété définit la taille minimale du widget

Le widget ne peut pas être redimensionné à une taille inférieure à sa taille minimale. Si la taille actuelle est inférieure à la taille minimale, celle-ci est automatiquement appliquée au widget.

La taille minimale définie par cette fonction remplace la taille minimale définie par la propriété « QLayout ». Pour désactiver la taille minimale, utilisez la valeur « QSize(0, 0) ».

Par défaut, cette propriété contient une taille avec une largeur et une hauteur égales à zéro.

Fonctions d’accès :

QSize minimumSize() const
void setMinimumSize(const QSize &)
void setMinimumSize(int minw, int minh)

Voir également minimumWidth, minimumHeight, maximumSize et sizeIncrement.

[read-only] minimumSizeHint : QSize

Cette propriété définit la taille minimale recommandée pour le widget

Si la valeur de cette propriété correspond à une taille non valide, aucune taille minimale n'est recommandée.

L'implémentation par défaut de `minimumSizeHint()` renvoie une taille non valide s'il n'existe pas de mise en page pour ce widget, et renvoie la taille minimale de la mise en page dans le cas contraire. La plupart des widgets intégrés réimplémentent `minimumSizeHint()`.

QLayout ne redimensionnera jamais un widget à une taille inférieure à la taille minimale indiquée, sauf si ` minimumSize()` est défini ou si la politique de taille est définie sur `QSizePolicy::Ignore`. Si ` minimumSize()` est défini, la taille minimale indiquée sera ignorée.

Fonctions d’accès :

virtual QSize minimumSizeHint() const

Voir également QSize::isValid(), resize(), setMinimumSize() et sizePolicy().

minimumWidth : int

Cette propriété contient la largeur minimale du widget en pixels

Cette propriété correspond à la largeur définie par la propriété « minimumSize ».

Par défaut, cette propriété a une valeur de 0.

Fonctions d'accès :

int minimumWidth() const
void setMinimumWidth(int minw)

Voir également « minimumSize » et « minimumHeight ».

Cette propriété indique si le widget est un widget modal

Cette propriété n'a de sens que pour les fenêtres. Un widget modal empêche les widgets de toutes les autres fenêtres de recevoir des entrées.

Par défaut, cette propriété est définie sur « false ».

Fonctions d'accès :

bool isModal() const

Voir également isWindow(), windowModality et QDialog.

mouseTracking : bool

Cette propriété indique si le suivi de la souris est activé pour le widget

Si le suivi de la souris est désactivé (par défaut), le widget ne reçoit des événements de déplacement de la souris que lorsqu'au moins un bouton de la souris est enfoncé pendant que la souris est déplacée.

Si le suivi de la souris est activé, le widget reçoit des événements de déplacement de la souris même si aucun bouton n'est enfoncé.

Fonctions d'accès :

bool hasMouseTracking() const
void setMouseTracking(bool enable)

Voir également mouseMoveEvent().

[read-only] normalGeometry : QRect

Cette propriété contient la géométrie du widget telle qu'elle apparaîtra lorsqu'il sera affiché en tant que widget de premier niveau normal (ni maximisé, ni en plein écran).

Si le widget se trouve déjà dans cet état, la géométrie normale reflétera l'geometry e actuelle du widget ().

Pour les widgets enfants, cette propriété contient toujours un rectangle vide.

Par défaut, cette propriété contient un rectangle vide.

Fonctions d’accès :

QRect normalGeometry() const

Voir également QWidget::windowState() et QWidget::geometry.

palette : QPalette

Cette propriété contient la palette du widget

Cette propriété décrit la palette du widget. La palette est utilisée par le style du widget lors du rendu des composants standard, et permet de garantir que les widgets personnalisés conservent une cohérence avec l'aspect et la convivialité de la plateforme native. Il est courant que différentes plateformes, ou différents styles, disposent de palettes différentes.

Lorsque vous attribuez une nouvelle palette à un widget, les rôles de couleur de cette palette sont combinés avec la palette par défaut du widget pour former la palette finale du widget. L’entrée de palette correspondant au rôle d’arrière-plan du widget est utilisée pour remplir l’arrière-plan du widget (voir QWidget::autoFillBackground), et le rôle de premier plan initialise le stylo de QPainter.

La valeur par défaut dépend de l’environnement système. QApplication gère une palette « system/theme » qui sert de valeur par défaut pour tous les widgets. Il peut également exister des palettes par défaut spécifiques à certains types de widgets (par exemple, sous Windows Vista, toutes les classes dérivées de QMenuBar disposent d’une palette par défaut spécifique). Vous pouvez également définir vous-même des palettes par défaut pour les widgets en transmettant une palette personnalisée et le nom d’un widget à la fonction ` QApplication::setPalette()`. Enfin, le style dispose toujours de la possibilité d’affiner la palette au moment de son attribution (voir ` QStyle::polish()`).

QWidget Propage les rôles explicites de la palette du parent vers les enfants. Si vous attribuez un pinceau ou une couleur à un rôle spécifique d’une palette et que vous attribuez cette palette à un widget, ce rôle se propagera à tous les enfants du widget, remplaçant ainsi les valeurs par défaut du système pour ce rôle. Notez que, par défaut, les palettes ne se propagent pas aux fenêtres (voir isWindow()) à moins que l’attribut ` Qt::WA_WindowPropagation ` ne soit activé.

QWidgetLa propagation de la palette est similaire à celle des polices.

Le style actuel, utilisé pour afficher le contenu de tous les Qt Widgets standard, est libre de choisir les couleurs et les pinceaux dans la palette du widget ou, dans certains cas, d’ignorer la palette (partiellement ou complètement). En particulier, certains styles, tels que le style GTK, le style Mac et le style Windows Vista, s’appuient sur des API tierces pour afficher le contenu des widgets, et ces styles ne respectent généralement pas la palette. De ce fait, l’attribution de rôles à la palette d’un widget ne garantit pas une modification de l’apparence de ce dernier. Vous pouvez plutôt choisir d’appliquer une feuille de style (styleSheet).

Avertissement : n’utilisez pas cette fonction conjointement avec les feuilles de style Qt. Lorsque vous utilisez des feuilles de style, la palette d’un widget peut être personnalisée à l’aide des propriétés « color », « background-color », « selection-color », « selection-background-color » et « alternate-background-color ».

Fonctions d’accès :

const QPalette &palette() const
void setPalette(const QPalette &)

Voir également QGuiApplication::palette(), QWidget::font() et les feuilles de style Qt.

pos : QPoint

Cette propriété indique la position du widget au sein de son widget parent

Si le widget est une fenêtre, la position correspond à celle du widget sur le bureau, cadre compris.

Lorsqu’on modifie la position, le widget, s’il est visible, reçoit immédiatement un événement de déplacement (moveEvent()). Si le widget n’est pas visible à ce moment-là, il est garanti qu’il recevra un événement avant d’être affiché.

Par défaut, cette propriété contient une position qui se réfère à l'origine.

Avertissement : l’appel de `move()` ou ` setGeometry()` à l’intérieur de ` moveEvent()` peut entraîner une récursion infinie.

Consultez la documentation sur la géométrie des fenêtres pour un aperçu des problèmes de géométrie liés aux fenêtres.

Remarque : tous les systèmes de fenêtragene prennentpas en charge la définition ou l’interrogation des positions des fenêtres de niveau supérieur. Sur un tel système, le déplacement des fenêtres par programmation peut ne produire aucun effet, et des valeurs artificielles peuvent être renvoyées pour les positions actuelles, telles que ` QPoint(0, 0)`.

Fonctions d’accès :

QPoint pos() const
void move(int x, int y)
void move(const QPoint &)

Voir également frameGeometry, size, x() et y().

[read-only] rect : QRect

Cette propriété contient la géométrie interne du widget, à l'exclusion de tout cadre de fenêtre

La propriété rect est définie par QRect(0, 0, width(), height()).

Consultez la documentation sur la géométrie des fenêtres pour obtenir un aperçu des problèmes de géométrie liés aux fenêtres.

Par défaut, cette propriété contient une valeur qui dépend de la plate-forme de l’utilisateur et de la géométrie de l’écran.

Fonctions d’accès :

QRect rect() const

Voir également size.

size : QSize

Cette propriété contient la taille du widget, hors cadre de la fenêtre

Si le widget est visible au moment où il est redimensionné, il reçoit immédiatement un événement de redimensionnement (resizeEvent()). Si le widget n'est pas visible à ce moment-là, il est garanti qu'il recevra un événement avant d'être affiché.

La taille est ajustée si elle se situe en dehors de la plage définie par minimumSize() et maximumSize().

Par défaut, cette propriété contient une valeur qui dépend de la plate-forme de l’utilisateur et de la géométrie de l’écran.

Avertissement : l'appel de resize() ou de setGeometry() à l'intérieur de resizeEvent() peut entraîner une récursion infinie.

Remarque : définir la taille sur QSize(0, 0) empêchera le widget d’apparaître à l’écran. Cela s’applique également aux fenêtres.

Fonctions d’accès :

QSize size() const
void resize(int w, int h)
void resize(const QSize &)

Voir également pos, geometry, minimumSize, maximumSize, resizeEvent() et adjustSize().

[read-only] sizeHint : QSize

Cette propriété contient la taille recommandée pour le widget

Si la valeur de cette propriété correspond à une taille non valide, aucune taille n’est recommandée.

L'implémentation par défaut de la méthode sizeHint() renvoie une taille non valide s'il n'existe pas de mise en page pour ce widget, et renvoie sinon la taille préférée de la mise en page.

Fonctions d'accès :

virtual QSize sizeHint() const

Voir également QSize::isValid(), minimumSizeHint(), sizePolicy(), setMinimumSize() et updateGeometry().

sizeIncrement : QSize

Cette propriété définit l'incrément de taille du widget

Lorsque l'utilisateur redimensionne la fenêtre, la taille évolue par incréments de sizeIncrement().width() pixels horizontalement et de sizeIncrement.height() pixels verticalement, en prenant baseSize() comme référence. Les tailles de widget recommandées correspondent à des entiers non négatifs i et j:

width = baseSize().width() + i * sizeIncrement().width();
height = baseSize().height() + j * sizeIncrement().height();

Notez que bien que vous puissiez définir l’incrément de taille pour tous les widgets, cela n’affecte que les fenêtres.

Par défaut, cette propriété contient une taille avec une largeur et une hauteur égales à zéro.

Avertissement : l’incrément de taille n’a aucun effet sous Windows et peut être ignoré par le gestionnaire de fenêtres sous X11.

Fonctions d’accès :

QSize sizeIncrement() const
void setSizeIncrement(const QSize &)
void setSizeIncrement(int w, int h)

Voir également size, minimumSize et maximumSize.

sizePolicy : QSizePolicy

Cette propriété définit le comportement par défaut de mise en page du widget

S’il existe une QLayout qui gère les enfants de ce widget, la politique de redimensionnement spécifiée par cette mise en page est utilisée. En l’absence d’une telle QLayout, le résultat de cette fonction est utilisé.

La politique par défaut est « Preferred/Preferred », ce qui signifie que le widget peut être redimensionné librement, mais qu’il préfère conserver la taille renvoyée par la fonction sizeHint(). Les widgets de type bouton définissent cette politique de taille pour indiquer qu’ils peuvent s’étirer horizontalement, mais qu’ils sont fixes verticalement. Il en va de même pour les contrôles `lineedit` (tels que ` QLineEdit`, ` QSpinBox ` ou un ` QComboBox` modifiable) et d’autres widgets orientés horizontalement (tels que ` QProgressBar`). Les ` QToolButton` sont normalement carrés ; ils permettent donc une extension dans les deux directions. Les widgets prenant en charge différentes orientations (tels que QSlider, QScrollBar ou QHeader) spécifient un étirement uniquement dans la direction correspondante. Les widgets pouvant afficher des barres de défilement (généralement des sous-classes de QScrollArea) indiquent généralement qu’ils peuvent utiliser de l’espace supplémentaire et qu’ils peuvent se contenter d’une taille inférieure à celle fournie par la fonction sizeHint().

Fonctions d’accès :

QSizePolicy sizePolicy() const
void setSizePolicy(QSizePolicy)
void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)

Voir également sizeHint(), QLayout, QSizePolicy et updateGeometry().

statusTip : QString

Cette propriété contient l'info-bulle du widget

Par défaut, cette propriété contient une chaîne vide.

Fonctions d'accès :

QString statusTip() const
void setStatusTip(const QString &)

Voir également toolTip et whatsThis.

styleSheet : QString

Cette propriété contient la feuille de style du widget

La feuille de style contient une description textuelle des personnalisations apportées au style du widget, comme décrit dans le document « Qt Style Sheets ».

La définition d’une feuille de style sur un widget fait en sorte que ce dernier et ses enfants utilisent un style de feuille de style qui englobe l’ style actuelle. Pour savoir quand utiliser les feuilles de style, consultez la section Approches de mise en forme de Qt Widgets.

Fonctions d'accès :

QString styleSheet() const
void setStyleSheet(const QString &styleSheet)

Voir également ` setStyle()`, ` QApplication::styleSheet`, « Fiches de style Qt » et « Approches de mise en forme pour Qt Widgets ».

tabletTracking : bool

Cette propriété indique si le suivi sur tablette est activé pour le widget

Si le suivi de la tablette est désactivé (configuration par défaut), le widget ne reçoit des événements de déplacement de la tablette que lorsque le stylet est en contact avec celle-ci, ou qu'au moins un bouton du stylet est enfoncé, pendant que le stylet est déplacé.

Si le suivi de la tablette est activé, le widget reçoit des événements de déplacement de la tablette même lorsque le stylet survole celle-ci. Cela est utile pour surveiller la position ainsi que les propriétés auxiliaires telles que la rotation et l'inclinaison, et pour fournir un retour d'information dans l'interface utilisateur.

Fonctions d'accès :

bool hasTabletTracking() const
void setTabletTracking(bool enable)

Voir également ` tabletEvent()`.

toolTip : QString

Cette propriété contient l'info-bulle du widget

Notez que, par défaut, les info-bulles ne s'affichent que pour les widgets enfants de la fenêtre active. Vous pouvez modifier ce comportement en définissant l'attribut ` Qt::WA_AlwaysShowToolTips ` sur la fenêtre, et non sur le widget comportant l'info-bulle.

Si vous souhaitez contrôler le comportement d'une info-bulle, vous pouvez intercepter la fonction ` event()` et intercepter l'événement ` QEvent::ToolTip ` (par exemple, si vous souhaitez personnaliser la zone dans laquelle l'info-bulle doit s'afficher).

Par défaut, cette propriété contient une chaîne vide.

Fonctions d’accès :

QString toolTip() const
void setToolTip(const QString &)

Voir également QToolTip, statusTip et whatsThis.

toolTipDuration : int

Cette propriété définit la durée d'affichage de l'info-bulle du widget

Spécifie la durée d'affichage de l'info-bulle, en millisecondes. Si la valeur est -1 (par défaut), la durée est calculée en fonction de la longueur de l'info-bulle.

Fonctions d'accès :

int toolTipDuration() const
void setToolTipDuration(int msec)

Voir aussi toolTip.

updatesEnabled : bool

Cette propriété s'applique que les mises à jour soient activées ou non

Un widget dont les mises à jour sont activées reçoit des événements de dessin et dispose d'un arrière-plan système ; ce n'est pas le cas d'un widget dont les mises à jour sont désactivées. Cela implique également que l'appel des méthodes ` update()` et ` repaint()` n'a aucun effet si les mises à jour sont désactivées.

Par défaut, cette propriété est définie sur true.

La fonction `setUpdatesEnabled()` est généralement utilisée pour désactiver les mises à jour pendant une courte période, par exemple pour éviter le scintillement de l'écran lors de modifications importantes. Dans Qt, les widgets ne provoquent généralement pas de scintillement à l’écran, mais sous X11, le serveur peut effacer certaines zones de l’écran lorsque des widgets sont masqués avant d’avoir pu être remplacés par d’autres widgets. La désactivation des mises à jour permet de résoudre ce problème.

Exemple :

setUpdatesEnabled(false);
bigVisualChanges();
setUpdatesEnabled(true);

La désactivation d’un widget désactive implicitement tous ses enfants. L’activation d’un widget active tous les widgets enfants, à l’exception des widgets de niveau supérieur ou de ceux qui ont été explicitement désactivés. La réactivation des mises à jour appelle implicitement la fonction ` update()` sur le widget.

Fonctions d’accès :

bool updatesEnabled() const
void setUpdatesEnabled(bool enable)

Voir également paintEvent().

visible : bool

Cette propriété indique si le widget est visible

L'appel de `setVisible(true)` ou ` show()` rend le widget visible si tous ses widgets parents, jusqu'à la fenêtre, sont visibles. Si un ancêtre n’est pas visible, le widget ne deviendra visible que lorsque tous ses ancêtres seront affichés. Si sa taille ou sa position a changé, Qt garantit qu’un widget reçoit des événements de déplacement et de redimensionnement juste avant d’être affiché. Si le widget n’a pas encore été redimensionné, Qt ajustera sa taille à une valeur par défaut appropriée à l’aide de la fonction ` adjustSize()`.

L’appel à `setVisible(false)` ou à ` hide()` masque explicitement un widget. Un widget explicitement masqué ne deviendra jamais visible, même si tous ses ancêtres deviennent visibles, à moins que vous ne l’affichiez.

Un widget reçoit des événements « show » et « hide » lorsque son état de visibilité change. Entre un événement « hide » et un événement « show », il n’est pas nécessaire de gaspiller des cycles CPU pour préparer ou afficher des informations à l’utilisateur. Une application vidéo, par exemple, peut simplement cesser de générer de nouvelles images.

Un widget qui se trouve masqué par d’autres fenêtres à l’écran est considéré comme visible. Il en va de même pour les fenêtres réduites en icône et les fenêtres situées sur un autre bureau virtuel (sur les plateformes prenant en charge ce concept). Un widget reçoit des événements « show » et « hide » spontanés lorsque son état de mappage est modifié par le système de fenêtrage, par exemple un événement « hide » spontané lorsque l’utilisateur minimise la fenêtre, et un événement « show » spontané lorsque la fenêtre est restaurée.

Vous n’avez que rarement besoin de réimplémenter la fonction `setVisible()`. Si vous devez modifier certains paramètres avant l’affichage d’un widget, utilisez plutôt ` showEvent()`. Si vous devez effectuer une initialisation différée, utilisez l’événement « Polish » transmis à la fonction ` event()`.

Fonctions d’accès :

bool isVisible() const
virtual void setVisible(bool visible)

Voir également show(), hide(), isHidden(), isVisibleTo(), isMinimized(), showEvent() et hideEvent().

whatsThis : QString

Cette propriété contient le texte d'aide « Qu'est-ce que c'est ? » du widget.

Par défaut, cette propriété contient une chaîne vide.

Fonctions d'accès :

QString whatsThis() const
void setWhatsThis(const QString &)

Voir également QWhatsThis, QWidget::toolTip et QWidget::statusTip.

[read-only] width : int

Cette propriété contient la largeur du widget, sans tenir compte du cadre de la fenêtre

Consultez la documentation sur la géométrie des fenêtres pour obtenir un aperçu des problèmes de géométrie liés aux fenêtres.

Remarque : n'utilisez pas cette fonction pour déterminer la largeur d'un écran sur un bureau multi-écrans. Consultez QScreen pour plus de détails.

Par défaut, cette propriété contient une valeur qui dépend de la plate-forme de l'utilisateur et de la géométrie de l'écran.

Fonctions d'accès :

int width() const

Voir également geometry, height et size.

windowFilePath : QString

Cette propriété contient le chemin d'accès au fichier associé à un widget

Cette propriété n'a de sens que pour les fenêtres. Elle associe un chemin d'accès à un fichier à une fenêtre. Si vous définissez le chemin d'accès au fichier, mais que vous n'avez pas défini le titre de la fenêtre, Qt attribue à celle-ci le nom du fichier correspondant au chemin spécifié, obtenu à l'aide de la fonction QFileInfo::fileName().

Si le titre de la fenêtre est défini à un moment quelconque, celui-ci prévaut et s'affiche à la place de la chaîne de caractères correspondant au chemin d'accès au fichier.

De plus, sous macOS, cela présente l’avantage supplémentaire de définir l’icône de remplacement de la fenêtre, à condition que le chemin d’accès au fichier existe.

Si aucun chemin d’accès n’est défini, cette propriété contient une chaîne vide.

Par défaut, cette propriété contient une chaîne vide.

Fonctions d'accès :

QString windowFilePath() const
void setWindowFilePath(const QString &filePath)

Voir également windowTitle et windowIcon.

windowFlags : Qt::WindowFlags

Les indicateurs de fenêtre sont constitués d’un type (par exemple, Qt::Dialog) et d’un ou plusieurs conseils destinés au système de fenêtrage (par exemple, Qt::FramelessWindowHint).

Si le widget était de type Qt::Widget ou Qt::SubWindow et devient une fenêtre (Qt::Window, Qt::Dialog, etc.), il est placé à la position (0, 0) sur le bureau. Si le widget est une fenêtre et devient un Qt::Widget ou un Qt::SubWindow, il est placé à la position (0, 0) par rapport à son widget parent.

Remarque : cette fonction appelle ` setParent()` lors de la modification des indicateurs d’une fenêtre, ce qui entraîne le masquage du widget. Vous devez appeler ` show()` pour rendre le widget à nouveau visible.

Fonctions d'accès :

Qt::WindowFlags windowFlags() const
void setWindowFlags(Qt::WindowFlags type)

Voir également windowType(), setWindowFlag() et l’exemple sur les indicateurs de fenêtre.

windowIcon : QIcon

Cette propriété contient l'icône du widget

Cette propriété n'a de sens que pour les fenêtres. Si aucune icône n'a été définie, windowIcon() renvoie l'icône de l'application (QApplication::windowIcon()).

Remarque : sous macOS, les icônes de fenêtre représentent le document actif et ne s'affichent que si un chemin d'accès au fichier a également été défini à l'aide de setWindowFilePath.

Fonctions d'accès :

QIcon windowIcon() const
void setWindowIcon(const QIcon &icon)

Signal de notification :

void windowIconChanged(const QIcon &icon)

Voir également windowTitle et setWindowFilePath.

windowModality : Qt::WindowModality

Cette propriété indique quelles fenêtres sont bloquées par le widget modal

Cette propriété n'a de sens que pour les fenêtres. Un widget modal empêche les widgets situés dans d'autres fenêtres de recevoir des entrées. La valeur de cette propriété détermine quelles fenêtres sont bloquées lorsque le widget est visible. Modifier cette propriété alors que la fenêtre est visible n'a aucun effet ; vous devez d'abord appeler la méthode ` hide()` sur le widget, puis l'appeler à nouveau avec ` show()`.

Par défaut, cette propriété est définie sur ` Qt::NonModal`.

Fonctions d'accès :

Qt::WindowModality windowModality() const
void setWindowModality(Qt::WindowModality windowModality)

Voir également ` isWindow()`, ` QWidget::modal` et ` QDialog`.

windowModified : bool

Cette propriété indique si le document affiché dans la fenêtre comporte des modifications non enregistrées

Une fenêtre modifiée est une fenêtre dont le contenu a été modifié mais n'a pas été enregistré sur le disque. Cet indicateur aura des effets différents selon la plateforme. Sous macOS, le bouton de fermeture aura un aspect différent ; sur les autres plateformes, le titre de la fenêtre comportera un « * » (astérisque).

Le titre de la fenêtre doit contenir un espace réservé « [*] », qui indique l'emplacement où le « * » doit apparaître. Normalement, il doit apparaître juste après le nom du fichier (par exemple, « document1.txt[*] - Éditeur de texte »). Si la fenêtre n'est pas modifiée, l'espace réservé est simplement supprimé.

Notez que si un widget est marqué comme modifié, tous ses ancêtres le seront également. Cependant, si vous appelez la fonction ` setWindowModified(false) ` sur un widget, cela ne se répercutera pas sur son parent, car d’autres enfants de ce dernier pourraient avoir été modifiés.

Fonctions d’accès :

bool isWindowModified() const
void setWindowModified(bool)

Voir également ` windowTitle`.

windowOpacity : double

Cette propriété définit le niveau d'opacité de la fenêtre.

La plage de valeurs valide pour l'opacité va de 1,0 (complètement opaque) à 0,0 (complètement transparent).

Par défaut, la valeur de cette propriété est 1,0.

Cette fonctionnalité est disponible sur les plateformes Linux embarqué, macOS, Windows et X11 prenant en charge l'extension Composite.

Remarque : sous X11, un gestionnaire composite doit être en cours d'exécution, et l'atome _NET_WM_WINDOW_OPACITY, spécifique à X11, doit être pris en charge par le gestionnaire de fenêtres que vous utilisez.

Avertissement : le fait de faire passer cette propriété de « opaque » à « transparent » peut déclencher un événement de dessin qui doit être traité avant que la fenêtre ne s'affiche correctement. Cela affecte principalement l'utilisation de la fonction ` QScreen::grabWindow()`. Notez également que les fenêtres semi-transparentes se mettent à jour et se redimensionnent nettement plus lentement que les fenêtres opaques.

Fonctions d’accès :

qreal windowOpacity() const
void setWindowOpacity(qreal level)

Voir également setMask().

windowTitle : QString

Cette propriété contient le titre de la fenêtre (légende)

Cette propriété n'a de sens que pour les widgets de niveau supérieur, tels que les fenêtres et les boîtes de dialogue. Si aucune légende n'a été définie, le titre est dérivé de l'windowFilePath. Si aucune de ces deux valeurs n'est définie, le titre est alors une chaîne vide.

Si vous utilisez le mécanisme « windowModified », le titre de la fenêtre doit contenir un espace réservé « [*] », qui indique l'emplacement où le « * » doit apparaître. Normalement, il devrait apparaître juste après le nom du fichier (par exemple, « document1.txt[*] - Éditeur de texte »). Si la propriété windowModified est définie sur « false » (valeur par défaut), l’espace réservé est simplement supprimé.

Sur certaines plateformes de bureau (notamment Windows et Unix), le nom de l’application (provenant de QGuiApplication::applicationDisplayName) est ajouté à la fin du titre de la fenêtre, s’il est défini. Cette opération est effectuée par le plugin QPA ; le nom est donc visible par l’utilisateur, mais ne fait pas partie de la chaîne windowTitle.

Fonctions d’accès :

QString windowTitle() const
void setWindowTitle(const QString &)

Signal Notifier :

void windowTitleChanged(const QString &title)

Voir également windowIcon, windowModified et windowFilePath.

[read-only] x : int

Cette propriété contient la coordonnée x du widget par rapport à son parent, y compris le cadre de la fenêtre

Consultez la documentation sur la géométrie des fenêtres pour obtenir un aperçu des questions liées à la géométrie des fenêtres.

Par défaut, cette propriété a la valeur 0.

Fonctions d'accès :

int x() const

Voir également frameGeometry, y et pos.

[read-only] y : int

Cette propriété contient la coordonnée y du widget par rapport à son parent, en incluant le cadre de la fenêtre

Consultez la documentation sur la géométrie des fenêtres pour obtenir un aperçu des questions liées à la géométrie des fenêtres.

Par défaut, cette propriété a pour valeur 0.

Fonctions d'accès :

int y() const

Voir également frameGeometry, x et pos.

Documentation sur les fonctions membres

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

Crée un widget qui est un enfant de ` parent`, dont les indicateurs de widget sont définis sur ` f`.

Si parent est nullptr, le nouveau widget devient une fenêtre. Si parent est un autre widget, ce widget devient une fenêtre enfant à l’intérieur de parent. Le nouveau widget est supprimé lorsque son parent est supprimé.

L’argument des indicateurs de widget, f, est normalement égal à 0, mais il peut être défini pour personnaliser le cadre d’une fenêtre (c’est-à-dire que parent doit être nullptr). Pour personnaliser le cadre, utilisez une valeur composée du OU binaire de n’importe lequel des window flags.

Si vous ajoutez un widget enfant à un widget déjà visible, vous devez afficher explicitement ce widget enfant pour le rendre visible.

Notez que la version X11 de Qt peut ne pas être en mesure de prendre en charge toutes les combinaisons de drapeaux de style sur tous les systèmes. En effet, sous X11, Qt ne peut qu'interroger le gestionnaire de fenêtres, et ce dernier peut passer outre les paramètres de l'application. Sous Windows, Qt peut définir tous les drapeaux de votre choix.

Voir également windowFlags.

[virtual noexcept] QWidget::~QWidget()

Supprime le widget.

Tous les éléments enfants de ce widget sont d'abord supprimés. L'application se ferme si ce widget est le widget principal.

[virtual protected] void QWidget::actionEvent(QActionEvent *event)

Ce gestionnaire d'événements est appelé avec l'event fournie chaque fois que les actions du widget sont modifiées.

Voir également addAction(), insertAction(), removeAction(), actions() et QActionEvent.

QList<QAction *> QWidget::actions() const

Renvoie la liste (éventuellement vide) des actions de ce widget.

Voir également contextMenuPolicy, insertAction() et removeAction().

void QWidget::activateWindow()

Définit le widget de niveau supérieur contenant ce widget comme fenêtre active.

Une fenêtre active est une fenêtre de premier niveau visible sur laquelle se trouve le focus du clavier.

Cette fonction effectue la même opération que lorsque l’on clique avec la souris sur la barre de titre d’une fenêtre de niveau supérieur. Sous X11, le résultat dépend du gestionnaire de fenêtres. Si vous souhaitez vous assurer que la fenêtre soit également placée au premier plan, vous devez également appeler la fonction ` raise()`. Notez que la fenêtre doit être visible, sinon la fonction `activateWindow()` n’a aucun effet.

Sous Windows, si vous appelez cette fonction alors que l’application n’est pas actuellement active, cela ne la rendra pas active. La couleur de l’icône dans la barre des tâches changera simplement pour indiquer que la fenêtre a subi une modification. En effet, Microsoft n’autorise pas une application à interrompre ce que l’utilisateur est en train de faire dans une autre application.

Voir également isActiveWindow(), window() et show().

void QWidget::addAction(QAction *action)

Ajoute l'action « action » à la liste des actions de ce widget.

Tous les QWidgets possèdent une liste d’ QActions. Cependant, celles-ci peuvent être représentées graphiquement de nombreuses façons différentes. L’utilisation par défaut de la liste d’ QAction s (telle que renvoyée par actions()) consiste à créer un contexte QMenu.

Un QWidget ne doit comporter qu'un seul exemplaire de chaque action ; l'ajout d'une action qu'il possède déjà n'entraînera pas la présence de cette même action deux fois dans le widget.

La propriété de action n'est pas transférée à ce QWidget.

Voir également removeAction(), insertAction(), actions() et QMenu.

[since 6.3] QAction *QWidget::addAction(const QString &text)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text)

[since 6.3] QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut)

Ces fonctions pratiques permettent de créer une nouvelle action avec le texte text, l'icône icon et le raccourci shortcut, le cas échéant.

Ces fonctions ajoutent l'action nouvellement créée à la liste des actions du widget, puis la renvoient.

QWidget prend possession de l'QAction renvoyée.

Ces fonctions ont été introduites dans Qt 6.3.

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QString &text, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QIcon &icon, const QString &text, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, Args &&... args)

Ces fonctions pratiques créent une nouvelle action avec le texte text, l'icône icon et le raccourci shortcut, le cas échéant.

Le signal ` triggered()` de l’action est connecté comme s’il s’agissait d’un appel à ` QObject::connect` (action, &QAction::triggered, args…), transmettant parfaitement ` args`, y compris un éventuel ` Qt::ConnectionType`.

La fonction ajoute l’action nouvellement créée à la liste des actions du widget et la renvoie.

QWidget prend possession de l’ QAction renvoyée.

Ces fonctions ont été introduites dans Qt 6.3.

[since 6.3] QAction *QWidget::addAction(const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

Cette fonction pratique crée une nouvelle action avec le texte « text », l'icône « icon » et le raccourci « shortcut », le cas échéant.

Le signal ` triggered()` de l'action est connecté au slot ` member ` de ` receiver`. La fonction ajoute l'action nouvellement créée à la liste des actions du widget et la renvoie.

QWidget prend possession de l’ QAction renvoyé.

Ces fonctions ont été introduites dans Qt 6.3.

void QWidget::addActions(const QList<QAction *> &actions)

Ajoute les actions « actions » à la liste des actions de ce widget.

Voir également removeAction(), QMenu et addAction().

void QWidget::adjustSize()

Ajuste la taille du widget pour qu'il s'adapte à son contenu.

Cette fonction utilise sizeHint() si celle-ci est valide, c'est-à-dire si la largeur et la hauteur de l'indication de taille sont >= 0. Sinon, elle définit la taille comme étant le rectangle enfant qui recouvre tous les widgets enfants (l'union de tous les rectangles des widgets enfants).

Pour les fenêtres, la taille de l'écran est également prise en compte. Si la fonction ` sizeHint()` renvoie une valeur inférieure à (200, 100) et que la politique de taille est définie sur ` expanding`, la fenêtre aura une taille minimale de (200, 100). La taille maximale d'une fenêtre correspond aux deux tiers de la largeur et de la hauteur de l'écran.

Voir également sizeHint() et childrenRect().

QPalette::ColorRole QWidget::backgroundRole() const

Renvoie le rôle d'arrière-plan du widget.

Le rôle d'arrière-plan définit le pinceau de l'palette e du widget qui est utilisé pour afficher l'arrière-plan.

Si aucun rôle d'arrière-plan n'est explicitement défini, le widget hérite du rôle d'arrière-plan de son widget parent.

Voir également ` setBackgroundRole()` et ` foregroundRole()`.

QBackingStore *QWidget::backingStore() const

Renvoie l'QBackingStore e dans laquelle ce widget sera dessiné.

[virtual protected] void QWidget::changeEvent(QEvent *event)

Ce gestionnaire d'événements peut être réimplémenté pour gérer les changements d'état.

L'état modifié lors de cet événement peut être récupéré via l'event fourni.

Les événements de modification incluent : QEvent::ToolBarChange, QEvent::ActivationChange, QEvent::EnabledChange, QEvent::FontChange, QEvent::StyleChange, QEvent::PaletteChange, QEvent::WindowTitleChange, QEvent::IconTextChange, QEvent::ModifiedChange, QEvent::MouseTrackingChange, QEvent::ParentChange, QEvent::WindowStateChange, QEvent::LanguageChange, QEvent::LocaleChange, QEvent::LayoutDirectionChange, QEvent::ReadOnlyChange.

QWidget *QWidget::childAt(int x, int y) const

Renvoie le widget enfant visible situé à la position (x, y) dans le système de coordonnées du widget. S'il n'y a pas de widget enfant visible à la position indiquée, la fonction renvoie nullptr.

QWidget *QWidget::childAt(const QPoint &p) const

Renvoie le widget enfant visible au point p dans le système de coordonnées propre au widget.

Il s'agit d'une fonction surchargée.

[since 6.8] QWidget *QWidget::childAt(const QPointF &p) const

Renvoie le widget enfant visible au point p dans le système de coordonnées propre au widget.

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.8.

void QWidget::clearFocus()

Retire le focus du clavier du widget.

Si le widget a le focus actif, un événement « focus out event » est envoyé à ce widget pour lui signaler qu'il a perdu le focus.

Ce widget doit activer le paramètre de focus pour obtenir le focus du clavier ; c'est-à-dire qu'il doit appeler la fonction setFocusPolicy().

Voir également hasFocus(), setFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy() et QApplication::focusWidget().

void QWidget::clearMask()

Supprime tout masque défini par la fonction setMask().

Voir également setMask().

[slot] bool QWidget::close()

Ferme ce widget. Renvoie « true » si le widget a été fermé ; sinon, renvoie « false ».

Il envoie d’abord un événement « QCloseEvent » au widget. Le widget est « hidden » s’il « accepts » l’événement de fermeture. S’il « ignores » l’événement, rien ne se passe. L’implémentation par défaut de ` QWidget::closeEvent()` accepte l’événement de fermeture.

Si le widget est marqué du drapeau « Qt::WA_DeleteOnClose », il est également supprimé. Un événement de fermeture est envoyé au widget, qu’il soit visible ou non.

Le signal QGuiApplication::lastWindowClosed() est émis lorsque la dernière fenêtre principale visible (c’est-à-dire une fenêtre sans parent) pour laquelle l’attribut Qt::WA_QuitOnClose est activé est fermée. Par défaut, cet attribut est activé pour tous les widgets, à l’exception des fenêtres éphémères telles que les écrans de démarrage, les fenêtres d’outils et les menus contextuels.

[virtual protected] void QWidget::closeEvent(QCloseEvent *event)

Ce gestionnaire d'événement est appelé avec l'event on fournie lorsque Qt reçoit une requête de fermeture de fenêtre pour un widget de niveau supérieur provenant du système de fenêtrage.

Par défaut, l'événement est accepté et le widget est fermé. Vous pouvez réimplémenter cette fonction pour modifier la manière dont le widget répond aux demandes de fermeture de fenêtre. Par exemple, vous pouvez empêcher la fermeture de la fenêtre en appelant ` ignore()` à chaque événement.

Les applications à fenêtre principale utilisent généralement des réimplémentations de cette fonction pour vérifier si le travail de l’utilisateur a été enregistré et demander son autorisation avant de fermer la fenêtre.

Voir également event(), hide(), close() et QCloseEvent.

QMargins QWidget::contentsMargins() const

La fonction `contentsMargins` renvoie les marges de contenu du widget.

Voir également setContentsMargins() et contentsRect().

QRect QWidget::contentsRect() const

Renvoie la surface située à l'intérieur des marges du widget.

Voir également setContentsMargins() et contentsMargins().

[virtual protected] void QWidget::contextMenuEvent(QContextMenuEvent *event)

Ce gestionnaire d'événements, destiné à l'événement « event », peut être réimplémenté dans une sous-classe afin de recevoir les événements du menu contextuel du widget.

Le gestionnaire est appelé lorsque l'contextMenuPolicy du widget est de type « Qt::DefaultContextMenu ».

L'implémentation par défaut ignore l'événement de contexte. Consultez la documentation relative à ` QContextMenuEvent ` pour plus de détails.

Voir également event(), QContextMenuEvent et customContextMenuRequested().

[protected] void QWidget::create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)

Crée une nouvelle fenêtre de widget.

Les paramètres window, initializeWindow et destroyOldWindow sont ignorés dans Qt 5. Veuillez utiliser QWindow::fromWinId() pour créer un QWindow encapsulant une fenêtre externe et le transmettre à QWidget::createWindowContainer() à la place.

Voir également createWindowContainer() et QWindow::fromWinId().

[static] QWidget *QWidget::createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

Crée un objet ` QWidget ` permettant d'intégrer ` window ` dans une application basée sur ` QWidget`.

Le conteneur de fenêtre est créé en tant qu’enfant de parent et avec les indicateurs de fenêtre flags.

Une fois la fenêtre intégrée dans le conteneur, ce dernier contrôle la géométrie et la visibilité de la fenêtre. Il n’est pas recommandé d’appeler explicitement les méthodes QWindow::setGeometry(), QWindow::show() ou QWindow::hide() sur une fenêtre intégrée.

Le conteneur prend possession de l'window. La fenêtre peut être retirée du conteneur de fenêtres à l'aide d'un appel à QWindow::setParent().

Le conteneur de fenêtres est associé en tant que fenêtre enfant native à la fenêtre de niveau supérieur dont il est le fils. Lorsqu’un conteneur de fenêtres est utilisé en tant qu’enfant d’une fenêtre de type ` QAbstractScrollArea ` ou ` QMdiArea`, il crée une fenêtre de type ` native window ` pour chaque widget de sa chaîne parentale afin de permettre un empilement et un découpage corrects dans ce cas d’utilisation. La création d’une fenêtre native pour le conteneur de fenêtres permet également un empilement et un découpage corrects. Cette opération doit être effectuée avant l’affichage du conteneur de fenêtres. Les applications comportant de nombreuses fenêtres enfants natives peuvent rencontrer des problèmes de performances.

Le conteneur de fenêtres présente un certain nombre de limitations connues :

  • Ordre d'empilement : la fenêtre intégrée s'empilera au sommet de la hiérarchie des widgets sous la forme d'une boîte opaque. L'ordre d'empilement de plusieurs instances de conteneur de fenêtres qui se chevauchent n'est pas défini.
  • Intégration du rendu : le conteneur de fenêtre n’interopère pas avec ` QGraphicsProxyWidget`, ` QWidget::render()` ou toute fonctionnalité similaire.
  • Gestion du focus ; il est possible de définir n’importe quelle politique de focus pour l’instance du conteneur de fenêtre, et celle-ci déléguera le focus à la fenêtre via un appel à ` QWindow::requestActivate()`. Cependant, le retour à la chaîne de focus normale depuis l’instance ` QWindow ` dépendra de l’implémentation même de l’instance ` QWindow `. De plus, le fait que ` QWindow::requestActivate()` donne effectivement le focus à la fenêtre dépend de la plateforme.

    En cas d’intégration d’une fenêtre basée sur ` Qt Quick `, Qt veillera automatiquement à ce que les pressions sur la touche Tab permettent de passer de la fenêtre QML intégrée à l’extérieur de celle-ci, permettant ainsi au focus de se déplacer vers l’objet focusable suivant ou précédent dans la chaîne des conteneurs de fenêtres.

  • L'utilisation d'un grand nombre d'instances de conteneurs de fenêtres dans une application basée sur ` QWidget` peut nuire considérablement aux performances globales de l'application.

Remarque : si ` window ` appartient à un widget (c'est-à-dire si ` window ` a été reçu à la suite de l'appel de ` windowHandle()`), aucun conteneur ne sera créé. À la place, cette fonction renverra le widget lui-même, après l'avoir rattaché à ` parent`. Comme aucun conteneur ne sera créé, ` flags ` sera ignoré. En d’autres termes, si window appartient à un widget, il suffit de réaffecter ce widget à parent au lieu d’utiliser cette fonction.

[signal] void QWidget::customContextMenuRequested(const QPoint &pos)

Ce signal est émis lorsque la propriété ` contextMenuPolicy ` du widget prend la valeur ` Qt::CustomContextMenu` et que l'utilisateur a demandé l'affichage d'un menu contextuel sur le widget. La position ` pos ` correspond à la position de l'événement de menu contextuel reçu par le widget. En règle générale, cette position est exprimée en coordonnées du widget. La seule exception à cette règle concerne la classe ` QAbstractScrollArea ` et ses sous-classes, qui mappent l'événement de menu contextuel aux coordonnées renvoyées par la méthode ` viewport()`.

Voir également mapToGlobal(), QMenu et contextMenuPolicy.

[protected] void QWidget::destroy(bool destroyWindow = true, bool destroySubWindows = true)

Libère les ressources du système de fenêtrage. Détruit la fenêtre du widget si destroyWindow est vrai.

La fonction `destroy()` s'appelle elle-même de manière récursive pour tous les widgets enfants, en transmettant ` destroySubWindows ` au paramètre ` destroyWindow `. Pour mieux contrôler la destruction des sous-widgets, détruisez-les d'abord de manière sélective.

Cette fonction est généralement appelée depuis le destructeur de ` QWidget `.

[virtual protected] void QWidget::dragEnterEvent(QDragEnterEvent *event)

Ce gestionnaire d'événement est appelé lorsqu'un glissement est en cours et que la souris pénètre dans ce widget. L'événement est transmis via le paramètre ` event `.

Si l'événement est ignoré, le widget ne recevra aucune drag move events.

Consultez la documentation sur le glisser-déposer pour découvrir comment implémenter le glisser-déposer dans votre application.

Voir également QDrag et QDragEnterEvent.

[virtual protected] void QWidget::dragLeaveEvent(QDragLeaveEvent *event)

Ce gestionnaire d'événement est appelé lorsqu'un glisser-déposer est en cours et que la souris quitte ce widget. L'événement est transmis via le paramètre ` event `.

Consultez la documentation sur le glisser-déposer pour découvrir comment implémenter cette fonctionnalité dans votre application.

Voir également QDrag et QDragLeaveEvent.

[virtual protected] void QWidget::dragMoveEvent(QDragMoveEvent *event)

Ce gestionnaire d'événement est appelé lorsqu'un glisser-déposer est en cours et dès qu'une des conditions suivantes se produit : le curseur entre dans ce widget, le curseur se déplace à l'intérieur de ce widget, ou une touche de modification est enfoncée sur le clavier alors que ce widget a le focus. L'événement est transmis via le paramètre ` event `.

Consultez la documentation sur le glisser-déposer pour découvrir comment implémenter le glisser-déposer dans votre application.

Voir également QDrag et QDragMoveEvent.

[virtual protected] void QWidget::dropEvent(QDropEvent *event)

Ce gestionnaire d'événement est appelé lorsque l'élément glissé est déposé sur ce widget. L'événement est transmis via le paramètre ` event `.

Consultez la documentation sur le glisser-déposer pour découvrir comment implémenter cette fonctionnalité dans votre application.

Voir également QDrag et QDropEvent.

WId QWidget::effectiveWinId() const

Renvoie l'identifiant effectif du système de fenêtrage du widget, c'est-à-dire l'identifiant du système de fenêtrage du parent natif.

Si le widget est natif, cette fonction renvoie l’ID du widget natif. Sinon, elle renvoie l’ID de la fenêtre du premier widget parent natif, c’est-à-dire le widget de niveau supérieur qui contient ce widget.

Remarque : nous vous recommandons de ne pas stocker cette valeur, car elle est susceptible de changer lors de l’exécution.

Voir aussi ` nativeParentWidget()`.

void QWidget::ensurePolished() const

Vérifie que le widget et ses éléments enfants ont été mis en forme par QStyle (c'est-à-dire qu'ils disposent d'une police et d'une palette appropriées).

QWidget Appelle cette fonction une fois que le widget a été entièrement construit, mais avant qu’il ne s’affiche pour la toute première fois. Vous pouvez appeler cette fonction si vous souhaitez vous assurer que le widget est « peaufiné » avant d’effectuer une opération ; par exemple, la taille de police correcte peut être nécessaire dans la réimplémentation de la méthode ` sizeHint()` du widget. Notez que cette fonction est appelée depuis l’implémentation par défaut de la méthode ` sizeHint()`.

La finalisation est utile pour l’initialisation finale qui doit avoir lieu après l’appel de tous les constructeurs (aussi bien ceux des classes de base que ceux des sous-classes).

Si vous devez modifier certains paramètres lors de la finition d’un widget, réimplémentez ` event()` et gérez le type d’événement ` QEvent::Polish `.

Remarque : la fonction est déclarée `const` afin de pouvoir être appelée depuis d’autres fonctions `const` (par exemple, ` sizeHint()`).

Voir également event().

[virtual protected] void QWidget::enterEvent(QEnterEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements d'entrée dans le widget, qui sont transmis via le paramètre ` event `.

Un événement est envoyé au widget lorsque le curseur de la souris pénètre dans celui-ci.

Voir également leaveEvent(), mouseMoveEvent() et event().

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

Réimplémente : QObject::event(QEvent *e).

Il s'agit du gestionnaire d'événements principal ; il gère les événements de type « event ». Vous pouvez réimplémenter cette fonction dans une sous-classe, mais nous vous recommandons plutôt d'utiliser l'un des gestionnaires d'événements spécialisés.

Les événements de pression et de relâchement de touche sont traités différemment des autres événements. La fonction event() vérifie si les touches Tab et Maj+Tab ont été enfoncées et tente de déplacer le focus en conséquence. S’il n’y a pas de widget vers lequel déplacer le focus (ou si la touche enfoncée n’est ni Tab ni Maj+Tab), event() appelle la fonction keyPressEvent().

La gestion des événements de souris et de tablette est également un peu particulière : ce n’est que lorsque le widget est en mode « enabled » que la fonction event() appelle les gestionnaires spécialisés tels que mousePressEvent() ; sinon, elle ignore l’événement.

Cette fonction renvoie ` true ` si l’événement a été reconnu, sinon elle renvoie ` false`. Si l’événement reconnu a été accepté (voir QEvent::accepted), tout traitement ultérieur, tel que la propagation de l’événement vers le widget parent, est interrompu.

Voir également closeEvent(), focusInEvent(), focusOutEvent(), enterEvent(), keyPressEvent(), keyReleaseEvent(), leaveEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), moveEvent(), paintEvent(), resizeEvent(), QObject::event() et QObject::timerEvent().

[static] QWidget *QWidget::find(WId id)

Renvoie un pointeur vers le widget dont l'identifiant/le descripteur de fenêtre est id.

Le type d'identifiant de fenêtre dépend du système de fenêtrage sous-jacent ; voir qwindowdefs.h pour la définition exacte. S'il n'existe aucun widget portant cet identifiant, la fonction renvoie nullptr.

[virtual protected] void QWidget::focusInEvent(QFocusEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de focus clavier (focus reçu) pour le widget. L'événement est transmis via le paramètre ` event `

Un widget doit normalement définir la méthode ` setFocusPolicy()` sur une valeur autre que ` Qt::NoFocus ` pour recevoir les événements de focus. (Notez que le développeur d’applications peut appeler la méthode ` setFocus()` sur n’importe quel widget, même ceux qui n’acceptent normalement pas le focus.)

L’implémentation par défaut met à jour le widget (à l’exception des fenêtres qui ne spécifient pas d’appel à focusPolicy()).

Voir également focusOutEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event() et QFocusEvent.

[protected] bool QWidget::focusNextChild()

Recherche un nouveau widget auquel attribuer le focus du clavier, conformément à Tab, et renvoie true s'il parvient à trouver un nouveau widget, ou false dans le cas contraire.

Voir également focusPreviousChild().

[virtual protected] bool QWidget::focusNextPrevChild(bool next)

Recherche un nouveau widget auquel attribuer le focus du clavier, selon le cas pour les touches Tab et Maj+Tab, et renvoie « true » si elle trouve un nouveau widget, ou « false » dans le cas contraire.

Si ` next ` est vrai, cette fonction effectue une recherche vers l'avant ; si ` next ` est faux, elle effectue une recherche vers l'arrière.

Il peut parfois s’avérer nécessaire de réimplémenter cette fonction. Par exemple, un navigateur web pourrait la réimplémenter pour faire avancer ou reculer son « lien actif actuel », et n’appeler focusNextPrevChild() que lorsqu’il atteint le dernier ou le premier lien de la « page ».

Les widgets enfants appellent focusNextPrevChild() sur leurs widgets parents, mais seule la fenêtre qui contient les widgets enfants décide où rediriger le focus. En réimplémentant cette fonction pour un objet, vous prenez ainsi le contrôle du parcours du focus pour tous les widgets enfants.

Voir également focusNextChild() et focusPreviousChild().

[virtual protected] void QWidget::focusOutEvent(QFocusEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de focus clavier (perte de focus) pour le widget. L'événement est transmis via le paramètre ` event `.

Un widget doit normalement définir la méthode ` setFocusPolicy()` sur une valeur autre que ` Qt::NoFocus ` pour recevoir les événements de focus. (Notez que le développeur d'applications peut appeler la méthode ` setFocus()` sur n'importe quel widget, même ceux qui n'acceptent normalement pas le focus.)

L’implémentation par défaut met à jour le widget (à l’exception des fenêtres qui ne spécifient pas d’appel à ` focusPolicy()`).

Voir également focusInEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event() et QFocusEvent.

[protected] bool QWidget::focusPreviousChild()

Recherche un nouveau widget auquel attribuer le focus du clavier, conformément à Shift+Tab, et renvoie true s'il parvient à trouver un nouveau widget, ou false dans le cas contraire.

Voir également focusNextChild().

QWidget *QWidget::focusProxy() const

Renvoie le proxy de focus, ou ` nullptr ` s'il n'y a pas de proxy de focus.

Voir aussi setFocusProxy().

QWidget *QWidget::focusWidget() const

Renvoie le dernier enfant de ce widget sur lequel la fonction ` setFocus ` a été appelée. Pour les widgets de niveau supérieur, il s'agit du widget qui recevra le focus si cette fenêtre est activée

Cette méthode n’est pas identique à ` QApplication::focusWidget()`, qui renvoie le widget actif dans la fenêtre actuellement active.

QFontInfo QWidget::fontInfo() const

Renvoie les informations relatives à la police actuellement utilisée par le widget. Équivalent à ` QFontInfo(widget->font())`.

Voir également font(), fontMetrics() et setFont().

QFontMetrics QWidget::fontMetrics() const

Renvoie les métriques de la police actuellement utilisée par le widget. Équivalent à ` QFontMetrics(widget->font())`.

Voir également font(), fontInfo() et setFont().

QPalette::ColorRole QWidget::foregroundRole() const

Renvoie le rôle de premier plan.

Le rôle de premier plan définit la couleur de l'palette du widget qui est utilisée pour dessiner le premier plan.

Si aucun rôle de premier plan n'est explicitement défini, la fonction renvoie un rôle qui contraste avec le rôle d'arrière-plan.

Voir également ` setForegroundRole()` et ` backgroundRole()`.

[invokable] QPixmap QWidget::grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))

Affiche le widget dans une image bitmap dont les dimensions sont limitées par l'rectangle. Si le widget comporte des éléments enfants, ceux-ci sont également affichés aux emplacements appropriés.

Si un rectangle dont la taille n’est pas valide est spécifié (valeur par défaut), le widget entier est dessiné.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

Voir également ` render()` et ` QPixmap`.

void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags())

Abonne le widget à une source gesture donnée, avec des paramètres flags spécifiques.

Voir également ungrabGesture() et QGestureEvent.

void QWidget::grabKeyboard()

Capture les entrées du clavier.

Ce widget reçoit tous les événements clavier jusqu’à ce que la fonction releaseKeyboard() soit appelée ; les autres widgets ne reçoivent alors plus aucun événement clavier. Les événements souris ne sont pas affectés. Utilisez la fonction grabMouse() si vous souhaitez les capturer.

Le widget actif n’est pas affecté, si ce n’est qu’il ne reçoit aucun événement clavier. La fonction ` setFocus()` déplace le focus comme d’habitude, mais le nouveau widget actif ne reçoit les événements clavier qu’après l’appel de ` releaseKeyboard()`.

Si un autre widget capture actuellement les entrées clavier, la capture de ce widget est d’abord libérée.

Voir également releaseKeyboard(), grabMouse(), releaseMouse() et focusWidget().

void QWidget::grabMouse()

Capture les événements de la souris.

Ce widget reçoit tous les événements de souris jusqu’à ce que la fonction ` releaseMouse()` soit appelée ; les autres widgets ne reçoivent alors plus aucun événement de souris. Les événements clavier ne sont pas affectés. Utilisez la fonction ` grabKeyboard()` si vous souhaitez les intercepter.

Avertissement : les bogues dans les applications capturant la souris bloquent très souvent le terminal. Utilisez cette fonction avec une extrême prudence et envisagez d’utiliser l’option de ligne de commande ` -nograb ` lors du débogage.

Il est rarement nécessaire de capturer la souris lors de l’utilisation de Qt, car Qt la capture et la libère de manière appropriée. En particulier, Qt capture la souris lorsqu’un bouton de souris est enfoncé et la conserve jusqu’à ce que le dernier bouton soit relâché.

Remarque : seuls les widgets visibles peuvent capturer les entrées de la souris. Si la fonction ` isVisible()` renvoie ` false ` pour un widget, ce dernier ne peut pas appeler `grabMouse()`.

Remarque : sous Windows, la fonction `grabMouse()` ne fonctionne que lorsque la souris se trouve à l’intérieur d’une fenêtre appartenant au processus. Sous macOS, la fonction `grabMouse()` ne fonctionne que lorsque la souris se trouve à l’intérieur du cadre de ce widget.

Voir également releaseMouse(), grabKeyboard() et releaseKeyboard().

void QWidget::grabMouse(const QCursor &cursor)

Capture les événements de la souris et modifie la forme du curseur.

Le curseur prendra la forme cursor (tant que le focus de la souris est capturé) et ce widget sera le seul à recevoir les événements de souris jusqu'à ce que la fonction releaseMouse() soit appelée.

Avertissement : le verrouillage de la souris peut bloquer le terminal.

Remarque : voir la remarque dans QWidget::grabMouse().

Cette fonction surcharge QWidget::grabMouse().

Voir également releaseMouse(), grabKeyboard(), releaseKeyboard() et setCursor().

int QWidget::grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut)

Ajoute un raccourci au système de raccourcis de Qt qui surveille la séquence d’ key spécifiée dans l’ context indiquée. Si l’ context est Qt::ApplicationShortcut, le raccourci s’applique à l’application dans son ensemble. Sinon, il est soit local à ce widget ( Qt::WidgetShortcut), soit à la fenêtre elle-même ( Qt::WindowShortcut).

Si la même séquence « key » a été capturée par plusieurs widgets, lorsque la séquence « key » se produit, un événement « QEvent::Shortcut » est envoyé à tous les widgets auxquels elle s’applique dans un ordre non déterministe, mais avec le drapeau « ambiguous » défini sur true.

Avertissement : vous ne devriez normalement pas avoir besoin d’utiliser cette fonction ; créez plutôt des « QAction» avec les séquences de touches de raccourci dont vous avez besoin (si vous souhaitez également disposer d’options de menu et de boutons de barre d’outils équivalents), ou créez des « QShortcut» si vous n’avez besoin que de séquences de touches. QAction et QShortcut gèrent tous les filtres d’événements à votre place et fournissent des signaux déclenchés lorsque l’utilisateur appuie sur la séquence de touches ; ils sont donc bien plus faciles à utiliser que cette fonction de bas niveau.

Voir également releaseShortcut() et setShortcutEnabled().

QGraphicsEffect *QWidget::graphicsEffect() const

La fonction `graphicsEffect` renvoie un pointeur vers l'effet graphique du widget.

Si le widget ne dispose d'aucun effet graphique, la valeur « nullptr » est renvoyée.

Voir aussi ` setGraphicsEffect()`.

QGraphicsProxyWidget *QWidget::graphicsProxyWidget() const

Renvoie le widget proxy correspondant au widget intégré dans une vue graphique ; sinon, renvoie « nullptr ».

Voir également QGraphicsProxyWidget::createProxyForChildWidget() et QGraphicsScene::addWidget().

[virtual] bool QWidget::hasHeightForWidth() const

Renvoie « true » si la hauteur préférée du widget dépend de sa largeur ; sinon, renvoie « false ».

[virtual] int QWidget::heightForWidth(int w) const

Renvoie la hauteur préférée de ce widget, compte tenu de la largeur w.

Si ce widget dispose d'une mise en page, l'implémentation par défaut renvoie la hauteur préférée de la mise en page. S'il n'y a pas de mise en page, l'implémentation par défaut renvoie -1, indiquant que la hauteur préférée ne dépend pas de la largeur.

[slot] void QWidget::hide()

Masque le widget. Cette fonction équivaut à ` setVisible(false)`.

Remarque : si vous utilisez ` QDialog ` ou ses sous-classes et que vous appelez la fonction ` show()` après cette fonction, la boîte de dialogue s'affichera à son emplacement d'origine.

Voir également hideEvent(), isHidden(), show(), setVisible(), isVisible() et close().

[virtual protected] void QWidget::hideEvent(QHideEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de masquage des widgets. L'événement est transmis via le paramètre « event ».

Les événements de masquage sont envoyés aux widgets immédiatement après leur masquage.

Remarque : un widget reçoit des événements d’affichage et de masquage spontanés lorsque son état de mappage est modifié par le système de fenêtrage, par exemple un événement de masquage spontané lorsque l’utilisateur minimise la fenêtre, et un événement d’affichage spontané lorsque la fenêtre est à nouveau restaurée. Après avoir reçu un événement de masquage spontané, un widget est toujours considéré comme visible au sens de la fonction isVisible().

Voir également visible, event() et QHideEvent.

[override virtual protected] void QWidget::initPainter(QPainter *painter) const

Initialise le stylo, l'arrière-plan et la police de l'painter, en les rendant identiques à ceux du widget fourni. Cette fonction est appelée automatiquement lorsque l' est ouvert sur un QWidget.

[virtual protected] void QWidget::inputMethodEvent(QInputMethodEvent *event)

Ce gestionnaire d'événements, destiné à l'événement « event », peut être réimplémenté dans une sous-classe afin de recevoir les événements de composition de la méthode de saisie. Ce gestionnaire est appelé lorsque l'état de la méthode de saisie change.

Notez que lors de la création de widgets d’édition de texte personnalisés, l’attribut de fenêtre ` Qt::WA_InputMethodEnabled ` doit être défini explicitement (à l’aide de la fonction ` setAttribute()`) afin de recevoir les événements liés à la méthode de saisie.

L'implémentation par défaut appelle event->ignore(), ce qui rejette l'événement de la méthode de saisie. Consultez la documentation relative à QInputMethodEvent pour plus de détails.

Voir également event() et QInputMethodEvent.

[virtual] QVariant QWidget::inputMethodQuery(Qt::InputMethodQuery query) const

Cette méthode ne s'applique qu'aux widgets de saisie. Elle est utilisée par le système de saisie pour interroger un ensemble de propriétés du widget afin de prendre en charge des opérations complexes, telles que la gestion du texte environnant et les reconversions.

query Spécifie quelle propriété est interrogée.

Voir également inputMethodEvent(), QInputMethodEvent, QInputMethodQueryEvent et inputMethodHints.

void QWidget::insertAction(QAction *before, QAction *action)

Ajoute l'action action à la liste des actions de ce widget, avant l'action before. Elle ajoute l'action à la fin si before est nullptr ou si before n'est pas une action valide pour ce widget.

Un « QWidget » ne doit comporter qu’un seul exemplaire de chaque action.

Voir également removeAction(), addAction(), QMenu, contextMenuPolicy et actions().

void QWidget::insertActions(QAction *before, const QList<QAction *> &actions)

Ajoute l'action actions à la liste des actions de ce widget, avant l'action before. L'action est ajoutée à la fin de la liste si before est nullptr ou si before n'est pas une action valide pour ce widget.

Un « QWidget » ne peut comporter qu’une seule instance de chaque action.

Voir également removeAction(), QMenu, insertAction() et contextMenuPolicy.

bool QWidget::isAncestorOf(const QWidget *child) const

Renvoie ` true ` si ce widget est un parent (ou un grand-parent, et ainsi de suite à n'importe quel niveau) du widget ` child` donné, et si les deux widgets se trouvent dans la même fenêtre ; sinon, renvoie ` false`.

bool QWidget::isEnabledTo(const QWidget *ancestor) const

Renvoie « true » si ce widget devait être activé lorsque « ancestor » est activé ; sinon, renvoie « false ».

C'est le cas si ni le widget lui-même, ni aucun de ses parents jusqu'à ancestor inclus (à l'exclusion de ce dernier) n'ont été explicitement désactivés.

isEnabledTo(0) renvoie « false » si ce widget ou l’un de ses ancêtres a été explicitement désactivé.

Le terme « ancêtre » désigne ici un widget parent situé dans la même fenêtre.

Par conséquent, isEnabledTo(0) s’arrête à la fenêtre de ce widget, contrairement à isEnabled() qui prend également en compte les fenêtres parentes.

Voir également setEnabled() et enabled.

bool QWidget::isHidden() const

Renvoie ` true ` si le widget est masqué, sinon renvoie ` false`.

Un widget masqué ne deviendra visible que lorsque la fonction show() sera appelée sur celui-ci. Il ne s'affichera pas automatiquement lorsque le parent sera affiché.

Pour vérifier la visibilité, utilisez plutôt !isVisible() (notez le point d’exclamation).

isHidden() implique !isVisible(), mais un widget peut être à la fois non visible et non masqué. C'est le cas des widgets qui sont des enfants de widgets non visibles.

Les widgets sont masqués si :

  • ils ont été créés en tant que fenêtres indépendantes,
  • ils ont été créés en tant qu'enfants de widgets visibles,
  • hide() ou setVisible(false) a été appelé.

bool QWidget::isVisibleTo(const QWidget *ancestor) const

Renvoie « true » si ce widget deviendrait visible lorsque « ancestor » est affiché ; sinon, renvoie « false ».

La valeur « true » est renvoyée si ni le widget lui-même, ni aucun de ses parents jusqu’à ancestor (exclu) n’ont été explicitement masqués.

Cette fonction renvoie tout de même « true » si le widget est masqué par d’autres fenêtres à l’écran, mais qu’il pourrait être physiquement visible si celles-ci étaient déplacées.

isVisibleTo(0) est identique à isVisible().

Voir également show(), hide() et isVisible().

bool QWidget::isWindow() const

Renvoie « true » si le widget est une fenêtre indépendante ; sinon, renvoie « false ».

Une fenêtre est un widget qui n’est visuellement le fils d’aucun autre widget et qui possède généralement un cadre et un « window title ».

Une fenêtre peut disposer d’un parent widget. Elle sera alors regroupée avec son parent et supprimée lorsque celui-ci sera supprimé, minimisée lorsque celui-ci sera minimisé, etc. Si le gestionnaire de fenêtres le prend en charge, elle disposera également d’une entrée commune dans la barre des tâches avec son parent.

QDialog Les widgets ` QMainWindow ` sont par défaut des fenêtres, même si un widget parent est spécifié dans le constructeur. Ce comportement est défini par l’indicateur ` Qt::Window `.

Voir également window(), isModal() et parentWidget().

[virtual protected] void QWidget::keyPressEvent(QKeyEvent *event)

Ce gestionnaire d'événements, destiné à l'événement ` event`, peut être réimplémenté dans une sous-classe afin de recevoir les événements de frappe pour le widget.

Un widget doit appeler ` setFocusPolicy()` pour accepter le focus initialement et disposer du focus afin de recevoir un événement de frappe.

Si vous réimplémentez ce gestionnaire, il est très important d’appeler l’implémentation de la classe de base si vous ne traitez pas la touche.

L’implémentation par défaut ferme les widgets contextuels si l’utilisateur appuie sur la séquence de touches définie pour ` QKeySequence::Cancel ` (généralement la touche Échap). Sinon, l’événement est ignoré, afin que le parent du widget puisse l’interpréter.

Notez que la méthode ` QKeyEvent ` commence avec `isAccepted()` == `true` ; vous n’avez donc pas besoin d’appeler ` QKeyEvent::accept()` — veillez simplement à ne pas appeler l’implémentation de la classe parente si vous traitez la touche.

Voir également keyReleaseEvent(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event() et QKeyEvent.

[virtual protected] void QWidget::keyReleaseEvent(QKeyEvent *event)

Ce gestionnaire d'événements, destiné à l'événement « event », peut être réimplémenté dans une sous-classe afin de recevoir les événements de relâchement de touche pour le widget.

Un widget doit initialement utiliser ` accept focus ` et ` have focus ` afin de recevoir un événement de relâchement de touche.

Si vous réimplémentez ce gestionnaire, il est très important d’appeler l’implémentation de la classe parente si vous ne traitez pas l’événement.

L’implémentation par défaut ignore l’événement, afin que le parent du widget puisse l’interpréter.

Notez que la méthode ` QKeyEvent ` commence avec `isAccepted()` == `true` ; vous n’avez donc pas besoin d’appeler ` QKeyEvent::accept()` — veillez simplement à ne pas appeler l’implémentation de la classe parente si vous traitez la touche.

Voir également keyPressEvent(), QEvent::ignore(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event() et QKeyEvent.

[static] QWidget *QWidget::keyboardGrabber()

Renvoie le widget qui a actuellement le contrôle des entrées clavier.

Si aucun widget de cette application n'est actuellement en train de capturer les entrées clavier, la fonction nullptr est renvoyée.

Voir également ` grabMouse()` et ` mouseGrabber()`.

QLayout *QWidget::layout() const

Renvoie le gestionnaire de mise en page associé à ce widget, ou ` nullptr ` si aucun gestionnaire de mise en page n'est associé.

Le gestionnaire de mise en page définit la géométrie des enfants du widget qui ont été ajoutés à la mise en page.

Voir également setLayout(), sizePolicy() et Gestion de la mise en page.

[virtual protected] void QWidget::leaveEvent(QEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de sortie du widget, qui sont transmis via le paramètre ` event `.

Un événement de sortie est envoyé au widget lorsque le curseur de la souris quitte le widget.

Voir également enterEvent(), mouseMoveEvent() et event().

[slot] void QWidget::lower()

Place le widget au bas de la pile du widget parent.

Après cet appel, le widget se trouvera visuellement derrière (et sera donc masqué par) tous les widgets frères qui le recouvrent.

Voir également raise() et stackUnder().

[since 6.0] QPointF QWidget::mapFrom(const QWidget *parent, const QPointF &pos) const

Convertit l'pos de coordonnées du widget du système de coordonnées de parent vers le système de coordonnées de ce widget. L'parent ne doit pas être de type « nullptr » et doit être un parent du widget appelant.

Cette fonction a été introduite dans Qt 6.0.

Voir également mapTo(), mapFromParent(), mapFromGlobal() et underMouse().

QPoint QWidget::mapFrom(const QWidget *parent, const QPoint &pos) const

Il s'agit d'une fonction surchargée.

[since 6.0] QPointF QWidget::mapFromGlobal(const QPointF &pos) const

Convertit les coordonnées globales de l'écran pos en coordonnées du widget.

Cette fonction a été introduite dans Qt 6.0.

Voir également mapToGlobal(), mapFrom() et mapFromParent().

QPoint QWidget::mapFromGlobal(const QPoint &pos) const

Il s'agit d'une fonction surchargée.

[since 6.0] QPointF QWidget::mapFromParent(const QPointF &pos) const

Convertit les coordonnées du widget parent ( pos ) en coordonnées du widget.

Equivalent à ` mapFromGlobal()` si le widget n'a pas de parent.

Cette fonction a été introduite dans Qt 6.0.

Voir également mapToParent(), mapFrom(), mapFromGlobal() et underMouse().

QPoint QWidget::mapFromParent(const QPoint &pos) const

Il s'agit d'une fonction surchargée.

[since 6.0] QPointF QWidget::mapTo(const QWidget *parent, const QPointF &pos) const

Convertit l'pos des coordonnées du widget dans le système de coordonnées de parent. L'parent ne doit pas être de type nullptr et doit être le parent du widget appelant.

Cette fonction a été introduite dans Qt 6.0.

Voir également mapFrom(), mapToParent(), mapToGlobal() et underMouse().

QPoint QWidget::mapTo(const QWidget *parent, const QPoint &pos) const

Il s'agit d'une fonction surchargée.

[since 6.0] QPointF QWidget::mapToGlobal(const QPointF &pos) const

Convertit l'pos de coordonnées du widget en coordonnées globales de l'écran. Par exemple, la fonction ` mapToGlobal(QPointF(0,0)) ` renvoie les coordonnées globales du pixel situé en haut à gauche du widget.

Cette fonction a été introduite dans Qt 6.0.

Voir également mapFromGlobal(), mapTo() et mapToParent().

QPoint QWidget::mapToGlobal(const QPoint &pos) const

Il s'agit d'une fonction surchargée.

[since 6.0] QPointF QWidget::mapToParent(const QPointF &pos) const

Convertit les coordonnées du widget pos en coordonnées du widget parent.

Equivalent à ` mapToGlobal()` si le widget n'a pas de parent.

Cette fonction a été introduite dans Qt 6.0.

Voir également mapFromParent(), mapTo(), mapToGlobal() et underMouse().

QPoint QWidget::mapToParent(const QPoint &pos) const

Il s'agit d'une fonction surchargée.

QRegion QWidget::mask() const

Renvoie le masque actuellement défini sur un widget. Si aucun masque n'est défini, la valeur renvoyée sera une région vide.

Voir également setMask(), clearMask() et QRegion::isEmpty().

[override virtual protected] int QWidget::metric(QPaintDevice::PaintDeviceMetric m) const

Réimplémente : ` QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const`.

Implémentation interne de la fonction virtuelle QPaintDevice::metric().

m est la métrique à récupérer.

[virtual protected] void QWidget::mouseDoubleClickEvent(QMouseEvent *event)

Ce gestionnaire d'événement, destiné à l'événement « event », peut être réimplémenté dans une sous-classe afin de recevoir les événements de double-clic de la souris pour le widget.

L'implémentation par défaut appelle ` mousePressEvent()`.

Remarque : outre l’événement de double-clic,le widget recevra également les événements de pression et de relâchement de la souris. Si un autre widget qui chevauche celui-ci disparaît à la suite d’événements de pression ou de relâchement, ce widget ne recevra alors que l’événement de double-clic. Il appartient au développeur de s’assurer que l’application interprète correctement ces événements.

Voir également mousePressEvent(), mouseReleaseEvent(), mouseMoveEvent(), event() et QMouseEvent.

[static] QWidget *QWidget::mouseGrabber()

Renvoie le widget qui gère actuellement l'entrée de la souris.

Si aucun widget de cette application ne capte actuellement l'entrée de la souris, la fonction nullptr est renvoyée.

Voir également ` grabMouse()` et ` keyboardGrabber()`.

[virtual protected] void QWidget::mouseMoveEvent(QMouseEvent *event)

Ce gestionnaire d'événements, destiné à l'événement « event », peut être réimplémenté dans une sous-classe afin de recevoir les événements de déplacement de la souris pour le widget.

Si le suivi de la souris est désactivé, les événements de déplacement de la souris ne se produisent que si un bouton de la souris est enfoncé pendant que la souris est déplacée. Si le suivi de la souris est activé, les événements de déplacement de la souris se produisent même si aucun bouton de la souris n’est enfoncé.

QMouseEvent::position() renvoie la position du curseur de la souris, par rapport à ce widget. Pour les événements de clic et de relâchement, la position est généralement la même que celle du dernier événement de déplacement de la souris, mais elle peut varier si la main de l’utilisateur tremble. Il s’agit d’une caractéristique du système de fenêtrage sous-jacent, et non de Qt.

Si vous souhaitez afficher immédiatement une info-bulle pendant que la souris se déplace (par exemple, pour obtenir les coordonnées de la souris avec ` QMouseEvent::position()` et les afficher sous forme d’info-bulle), vous devez d’abord activer le suivi de la souris comme décrit ci-dessus. Ensuite, pour garantir que l’info-bulle soit mise à jour immédiatement, vous devez appeler ` QToolTip::showText()` au lieu de ` setToolTip()` dans votre implémentation de `mouseMoveEvent()`.

Voir également setMouseTracking(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), event(), QMouseEvent et l’exemple Scribble.

[virtual protected] void QWidget::mousePressEvent(QMouseEvent *event)

Ce gestionnaire d'événement, destiné à l'événement « event », peut être réimplémenté dans une sous-classe afin de recevoir les événements de clic de souris pour le widget.

Si vous créez de nouveaux widgets dans la fonction mousePressEvent(), l’ mouseReleaseEvent() risque de ne pas se terminer là où vous vous y attendez, en fonction du système de fenêtrage sous-jacent (ou du gestionnaire de fenêtres X11), de l’emplacement des widgets et peut-être d’autres facteurs.

L’implémentation par défaut provoque la fermeture des widgets contextuels lorsque vous cliquez en dehors de la fenêtre. Pour les autres types de widgets, elle ne fait rien.

Voir également mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent et l’exemple Scribble.

[virtual protected] void QWidget::mouseReleaseEvent(QMouseEvent *event)

Ce gestionnaire d'événements, destiné à l'événement « event », peut être réimplémenté dans une sous-classe afin de recevoir les événements de relâchement de souris pour le widget.

Voir également mousePressEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent et l'exemple Scribble.

void QWidget::move(int x, int y)

Cela correspond à la fonction move(QPoint(x, y)).

Remarque : fonctionde définition de la propriété pos.

Il s'agit d'une fonction surchargée.

[virtual protected] void QWidget::moveEvent(QMoveEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de déplacement du widget, qui sont transmis via le paramètre event. Lorsque le widget reçoit cet événement, il se trouve déjà à sa nouvelle position.

L'ancienne position est accessible via QMoveEvent::oldPos().

Voir également resizeEvent(), event(), move() et QMoveEvent.

[virtual protected] bool QWidget::nativeEvent(const QByteArray &eventType, void *message, qintptr *result)

Ce gestionnaire d'événements spécial peut être réimplémenté dans une sous-classe afin de recevoir les événements natifs de la plateforme identifiés par eventType, qui sont transmis via le paramètre message.

Dans votre réimplémentation de cette fonction, si vous souhaitez empêcher Qt de gérer l’événement, renvoyez true et définissez result. Le paramètre result n’a de sens que sous Windows. Si vous renvoyez false, cet événement natif est renvoyé à Qt, qui le convertit en événement Qt et l’envoie au widget.

Remarque : les événements ne sont transmis à ce gestionnaire d’événements que si le widget dispose d’un descripteur de fenêtre natif.

Remarque : cette fonction remplace les fonctions de filtrage d’événements x11Event(), winEvent() et macEvent() de Qt 4.

PlateformeIdentifiant du type d'événementType de messageType de résultat
Windows« windows_generic_MSG »MSG *LRESULT
macOS« NSEvent »NSEvent *
XCB« xcb_generic_event_t »xcb_generic_event_t *

Voir aussi QAbstractNativeEventFilter.

QWidget *QWidget::nativeParentWidget() const

Renvoie le parent natif de ce widget, c'est-à-dire le widget ancêtre le plus proche disposant d'un identifiant système, ou nullptr s'il n'a pas de parent natif.

Voir également effectiveWinId().

QWidget *QWidget::nextInFocusChain() const

Renvoie le widget suivant dans la chaîne de focus de ce widget.

Voir aussi previousInFocusChain().

void QWidget::overrideWindowFlags(Qt::WindowFlags flags)

Définit les indicateurs de fenêtre du widget sur « flags », sans en informer le système de fenêtrage.

Avertissement : n'appelezpas cette fonction à moins de savoir exactement ce que vous faites.

Voir également ` setWindowFlags()`.

[override virtual] QPaintEngine *QWidget::paintEngine() const

Réimplémente : ` QPaintDevice::paintEngine()` const.

Renvoie le moteur de rendu du widget.

Notez que cette fonction ne doit pas être appelée explicitement par l'utilisateur, car elle est uniquement destinée à être réimplémentée. La fonction est appelée en interne par Qt, et l'implémentation par défaut ne renvoie pas toujours un pointeur valide.

[virtual protected] void QWidget::paintEvent(QPaintEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de dessin transmis via ` event`.

Un événement de dessin est une demande de rafraîchissement de tout ou partie d’un widget. Il peut se produire pour l’une des raisons suivantes :

  • repaint() ou update() a été appelé,
  • le widget était masqué et est désormais visible, ou
  • pour de nombreuses autres raisons.

De nombreux widgets peuvent simplement rafraîchir l’intégralité de leur surface lorsqu’on leur en fait la demande, mais certains widgets lents doivent optimiser leur comportement en ne rafraîchissant que la zone demandée : ` QPaintEvent::region()`. Cette optimisation de vitesse ne modifie pas le résultat, car le rafraîchissement est limité à cette zone lors du traitement de l’événement. Les classes ` QListView ` et ` QTableView ` procèdent ainsi, par exemple.

Qt tente également d’accélérer le dessin en fusionnant plusieurs événements de dessin en un seul. Lorsque la fonction update() est appelée plusieurs fois ou que le système de fenêtrage envoie plusieurs événements de dessin, Qt fusionne ces événements en un seul événement couvrant une zone plus grande (voir QRegion::united()). La fonction repaint() ne permet pas cette optimisation ; nous vous recommandons donc d’utiliser update() dans la mesure du possible.

Lorsque l’événement de dessin se produit, la région de mise à jour a normalement été effacée ; vous dessinez donc sur l’arrière-plan du widget.

L’arrière-plan peut être défini à l’aide de setBackgroundRole() et setPalette().

Depuis Qt 4.0, la fonction QWidget utilise automatiquement le double tampon pour le dessin ; il n’est donc plus nécessaire d’écrire de code de double tampon dans paintEvent() pour éviter le scintillement.

Remarque : en règle générale , vous devez éviter d’appeler update() ou repaint() à l’intérieur d’ un paintEvent(). Par exemple, l’appel de update() ou repaint() sur des éléments enfants à l’intérieur d’un paintEvent() entraîne un comportement indéfini ; l’élément enfant peut recevoir ou non un événement de dessin.

Avertissement : si vous utilisez un moteur de dessin personnalisé sans le backingstore de Qt, Qt::WA_PaintOnScreen doit être défini. Sinon, QWidget::paintEngine() ne sera jamais appelé ; le backingstore sera utilisé à la place.

Voir aussi event(), repaint(), update(), QPainter, QPixmap, QPaintEvent et Analog Clock.

QWidget *QWidget::parentWidget() const

Renvoie le widget parent de ce widget, ou ` nullptr ` s'il n'a pas de widget parent.

QWidget *QWidget::previousInFocusChain() const

La fonction `InFocusChain` renvoie le widget précédent dans la chaîne de focus de ce widget.

Voir également nextInFocusChain().

[slot] void QWidget::raise()

Place ce widget au premier plan de la pile du widget parent.

Après cet appel, le widget apparaîtra visuellement devant tous les widgets frères qui le chevauchent.

Remarque : lorsque vous utilisez ` activateWindow()`, vous pouvez appeler cette fonction pour vous assurer que la fenêtre se trouve au premier plan.

Voir également lower() et stackUnder().

void QWidget::releaseKeyboard()

Libère le contrôle du clavier.

Voir également grabKeyboard(), grabMouse() et releaseMouse().

void QWidget::releaseMouse()

Libère la sélection de la souris.

Voir également grabMouse(), grabKeyboard() et releaseKeyboard().

void QWidget::releaseShortcut(int id)

Supprime le raccourci associé à l'id indiquée du système de raccourcis de Qt. Le widget ne recevra plus d'événements « QEvent::Shortcut » pour la séquence de touches du raccourci (à moins qu'il ne dispose d'autres raccourcis utilisant la même séquence de touches).

Avertissement : vous ne devriez normalement pas avoir besoin d’utiliser cette fonction, car le système de raccourcis de Qt supprime automatiquement les raccourcis lorsque leur widget parent est détruit. Il est préférable d’utiliser ` QAction ` ou ` QShortcut ` pour gérer les raccourcis, car ces fonctions sont plus faciles à utiliser que cette fonction de bas niveau. Notez également qu’il s’agit d’une opération coûteuse en ressources.

Voir également grabShortcut() et setShortcutEnabled().

void QWidget::removeAction(QAction *action)

Supprime l'action « action » de la liste des actions de ce widget.

Voir également insertAction() et actions().

void QWidget::render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))

Affiche l'sourceRegion de ce widget dans l'target en utilisant renderFlags pour déterminer comment l'afficher. L'affichage commence à l'adresse targetOffset dans le target. Par exemple :

QPixmap pixmap(widget->size());
widget->render(&pixmap);

Si sourceRegion est une région nulle, cette fonction utilisera QWidget::rect() comme région, c'est-à-dire l'intégralité du widget.

Veillez à appeler QPainter::end() pour le peintre actif (le cas échéant) du périphérique target avant le rendu. Par exemple :

QPainter painter(this);
...
painter.end();
myWidget->render(this);

Remarque : pour obtenir le contenu d’un ` QOpenGLWidget`, utilisez plutôt ` QOpenGLWidget::grabFramebuffer()`.

void QWidget::render(QPainter *painter, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))

Affiche le widget dans la méthode QPainter::device() de l'painter.

Les transformations et les paramètres appliqués à l'painter seront utilisés lors de l'affichage.

Remarque : l’ painter doit être active. Sous macOS, le widget sera rendu dans une QPixmap, puis dessiné par la painter.

Il s’agit d’une fonction surchargée.

Voir également QPainter::device().

[slot] void QWidget::repaint()

Redessine directement le widget en appelant immédiatement la fonction ` paintEvent()`, sauf si les mises à jour sont désactivées ou si le widget est masqué.

Nous vous recommandons de n’utiliser repaint() que si vous avez besoin d’un rafraîchissement immédiat, par exemple pendant une animation. Dans la plupart des cas, update() est préférable, car il permet à Qt d’optimiser la vitesse et de minimiser le scintillement.

Avertissement : si vous appelez `repaint()` dans une fonction susceptible d'être elle-même appelée depuis ` paintEvent()`, vous risquez d'entrer dans une récursion infinie. La fonction ` update()` ne provoque jamais de récursion.

Remarque : ce slot est surchargé. Pour vous connecter à ce slot :

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        widget, qOverload<>(&QWidget::repaint));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        widget, [receiver = widget]() { receiver->repaint(); });
Pour plus d’exemples et d’approches, voir la section « Connexion à des slots surchargés ».

Voir également update(), paintEvent() et setUpdatesEnabled().

void QWidget::repaint(const QRect &rect)

Cette version redessine un rectangle rect à l'intérieur du widget.

Il s'agit d'une fonction surchargée.

void QWidget::repaint(const QRegion &rgn)

Cette version actualise l'affichage d'une région rgn à l'intérieur du widget.

Il s'agit d'une fonction surchargée.

void QWidget::repaint(int x, int y, int w, int h)

Cette version redessine un rectangle (x, y, w, h) à l'intérieur du widget.

Si w est négative, elle est remplacée par width() - x, et si h est négative, elle est remplacée par height() - y.

Il s'agit d'une fonction surchargée.

void QWidget::resize(int w, int h)

Cela correspond à resize(QSize(w, h)).

Remarque : fonctionde définition de la propriété size.

Il s'agit d'une fonction surchargée.

[virtual protected] void QWidget::resizeEvent(QResizeEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements de redimensionnement du widget, qui sont transmis via le paramètre ` event `. Lorsque la méthode `resizeEvent()` est appelée, le widget dispose déjà de sa nouvelle géométrie. L'ancienne taille est accessible via la méthode ` QResizeEvent::oldSize()`.

Le widget sera effacé et recevra un événement de dessin immédiatement après le traitement de l’événement de redimensionnement. Aucun dessin ne doit (ni ne devrait) être effectué à l’intérieur de ce gestionnaire.

Voir également moveEvent(), event(), resize(), QResizeEvent, paintEvent() et l’exemple Scribble.

bool QWidget::restoreGeometry(const QByteArray &geometry)

Restaure la géométrie et l'état des widgets de niveau supérieur stockés dans le tableau d'octets geometry. Renvoie true en cas de succès ; sinon, renvoie false.

Si la géométrie restaurée se trouve hors écran, elle sera modifiée pour s’inscrire dans la géométrie d’écran disponible.

Pour restaurer une géométrie enregistrée à l’aide de ` QSettings`, vous pouvez utiliser un code similaire à celui-ci :

QSettings settings("MyCompany", "MyApp");
myWidget->restoreGeometry(settings.value("myWidget/geometry").toByteArray());

Consultez la documentation sur la géométrie des fenêtres pour obtenir un aperçu des problèmes de géométrie liés aux fenêtres.

Utilisez QMainWindow::restoreState() pour restaurer la géométrie ainsi que l’état des barres d’outils et des widgets ancrés.

Voir également ` saveGeometry()`, ` QSettings`, ` QMainWindow::saveState()` et ` QMainWindow::restoreState()`.

QByteArray QWidget::saveGeometry() const

Enregistre la géométrie et l'état actuels des widgets de niveau supérieur.

Pour enregistrer la géométrie à la fermeture de la fenêtre, vous pouvez implémenter un événement de fermeture comme suit :

void MyWidget::closeEvent(QCloseEvent *event)
{
    QSettings settings("MyCompany", "MyApp");
    settings.setValue("geometry", saveGeometry());
    QWidget::closeEvent(event);
}

Consultez la documentation sur la géométrie des fenêtres pour obtenir un aperçu des problèmes de géométrie liés aux fenêtres.

Utilisez ` QMainWindow::saveState()` pour enregistrer la géométrie et l'état des barres d'outils et des widgets ancrés.

Voir également ` restoreGeometry()`, ` QMainWindow::saveState()` et ` QMainWindow::restoreState()`.

QScreen *QWidget::screen() const

Renvoie l'écran sur lequel se trouve le widget.

Voir également setScreen() et windowHandle().

void QWidget::scroll(int dx, int dy)

Fait défiler le widget, y compris ses éléments enfants, de dx pixels vers la droite et de dy vers le bas. Les valeurs dx et dy peuvent être négatives.

Après le défilement, les widgets recevront des événements de dessin pour les zones devant être redessinées. Pour les widgets que Qt identifie comme opaques, cela ne concerne que les parties nouvellement exposées. Par exemple, si un widget opaque est déplacé de 8 pixels vers la gauche, seule une bande de 8 pixels de large située au bord droit doit être mise à jour.

Comme les widgets propagent par défaut le contenu de leurs parents, vous devez définir la propriété ` autoFillBackground `, ou utiliser ` setAttribute()` pour définir l’attribut ` Qt::WA_OpaquePaintEvent `, afin de rendre un widget opaque.

Pour les widgets qui utilisent la propagation du contenu, un défilement entraînera la mise à jour de l’ensemble de la zone de défilement.

Voir également Transparency and Double Buffering.

void QWidget::scroll(int dx, int dy, const QRect &r)

Cette version ne fait défiler que ` r ` et ne déplace pas les éléments enfants du widget.

Si r est vide ou non valide, le résultat est indéfini.

Il s'agit d'une fonction surchargée.

Voir également QScrollArea.

void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)

Définit l'attribut « attribute » sur ce widget si « on » est vrai ; sinon, efface cet attribut.

Voir également testAttribute().

void QWidget::setBackgroundRole(QPalette::ColorRole role)

Définit le rôle d'arrière-plan du widget sur « role ».

Le rôle d'arrière-plan définit le pinceau issu de la propriété « palette » du widget qui est utilisé pour afficher l'arrière-plan.

Si « role » est défini sur « QPalette::NoRole », le widget hérite alors du rôle d’arrière-plan de son parent.

Notez que les styles peuvent choisir librement n’importe quelle couleur de la palette. Vous pouvez modifier la palette ou définir une feuille de style si vous n’obtenez pas le résultat souhaité avec setBackgroundRole().

Voir également ` backgroundRole()` et ` foregroundRole()`.

void QWidget::setBaseSize(int basew, int baseh)

Cela correspond à setBaseSize(QSize(basew, baseh)). Définit la taille de base du widget sur une largeur de basew et une hauteur de baseh.

Remarque : fonctionde mise à valeur pour la propriété baseSize.

Il s'agit d'une fonction surchargée.

Voir également baseSize().

void QWidget::setContentsMargins(int left, int top, int right, int bottom)

Définit les marges autour du contenu du widget aux tailles suivantes : left, top, right et bottom. Ces marges sont utilisées par le système de mise en page et peuvent servir aux sous-classes pour spécifier la zone à dessiner (par exemple, en excluant le cadre).

La modification des marges déclenche un événement « resizeEvent() ».

Voir également contentsRect() et contentsMargins().

void QWidget::setContentsMargins(const QMargins &margins)

La fonction `setContentsMargins` définit les marges autour du contenu du widget.

Elle définit les marges autour du contenu du widget selon les valeurs déterminées par ` margins`. Ces marges sont utilisées par le système de mise en page et peuvent servir aux sous-classes pour spécifier la zone à dessiner (par exemple, en excluant le cadre).

La modification des marges déclenche un événement « resizeEvent() ».

Il s’agit d’une fonction surchargée.

Voir également ` contentsRect()` et ` contentsMargins()`.

[slot] void QWidget::setDisabled(bool disable)

Désactive les événements de saisie du widget si la valeur de « disable » est « true » ; dans le cas contraire, active les événements de saisie.

Pour plus d’informations, consultez la documentation relative à ` enabled `.

Voir également isEnabledTo(), QKeyEvent, QMouseEvent et changeEvent().

void QWidget::setFixedHeight(int h)

Définit à la fois la hauteur minimale et maximale du widget sur h sans modifier les largeurs. Fournie à titre de commodité.

Voir également sizeHint(), minimumSize(), maximumSize() et setFixedSize().

void QWidget::setFixedSize(const QSize &s)

Définit à la fois la taille minimale et la taille maximale du widget sur s, ce qui l'empêche ainsi de s'agrandir ou de se réduire.

Cela remplacera les contraintes de taille par défaut définies par QLayout.

Pour supprimer ces contraintes, définissez la taille sur ` QWIDGETSIZE_MAX`.

Sinon, si vous souhaitez que le widget ait une taille fixe en fonction de son contenu, vous pouvez appeler ` QLayout::setSizeConstraint` (QLayout::SetFixedSize) ;

Voir également maximumSize et minimumSize.

void QWidget::setFixedSize(int w, int h)

Définit la largeur du widget sur w et sa hauteur sur h.

Il s'agit d'une fonction surchargée.

void QWidget::setFixedWidth(int w)

Définit à la fois la largeur minimale et maximale du widget à w sans modifier les hauteurs. Fournie à titre pratique.

Voir également sizeHint(), minimumSize(), maximumSize() et setFixedSize().

void QWidget::setFocus(Qt::FocusReason reason)

Attribue le focus du clavier à ce widget (ou à son proxy de focus) si ce widget ou l'un de ses parents est l'active window. L'argument « reason » sera transmis à tout événement de focus envoyé depuis cette fonction ; il sert à expliquer la raison pour laquelle le widget a obtenu le focus. Si la fenêtre n’est pas active, le widget recevra le focus lorsque la fenêtre deviendra active.

Tout d’abord, un événement « focus about to change » est envoyé au widget de focus (le cas échéant) pour lui signaler qu’il est sur le point de perdre le focus. Ensuite, le focus est modifié : un événement « focus out » est envoyé à l’élément qui détenait précédemment le focus, et un événement « focus in » est envoyé au nouvel élément pour lui indiquer qu’il vient de recevoir le focus. (Rien ne se produit si les widgets « focus in » et « focus out » sont identiques.)

Remarque : sur les plateformes embarquées, la méthode `setFocus()` ne provoque pas l’ouverture d’un panneau de saisie par la méthode de saisie. Si vous souhaitez que cela se produise, vous devez envoyer vous-même un événement ` QEvent::RequestSoftwareInputPanel ` au widget.

La méthode `setFocus()` attribue le focus à un widget quelle que soit sa politique de focus, mais ne libère pas le contrôle du clavier (voir ` grabKeyboard()`).

Sachez que si le widget est masqué, il n’acceptera pas le focus tant qu’il ne sera pas affiché.

Avertissement : si vous appelez `setFocus()` dans une fonction susceptible d’être elle-même appelée depuis ` focusOutEvent()` ou ` focusInEvent()`, vous risquez d’entrer dans une récursion infinie.

Voir également hasFocus(), clearFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy(), focusWidget(), QApplication::focusWidget(), grabKeyboard(), grabMouse(), le focus clavier dans les widgets et QEvent::RequestSoftwareInputPanel.

[slot] void QWidget::setFocus()

Attribue le focus clavier à ce widget (ou à son proxy de focus) si ce widget ou l'un de ses parents est le « active window ».

Remarque : ce slot est surchargé. Pour vous connecter à ce slot :

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        widget, qOverload<>(&QWidget::setFocus));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        widget, [receiver = widget]() { receiver->setFocus(); });
Pour plus d’exemples et d’approches, consultez la section « Connexion à des slots surchargés ».

void QWidget::setFocusProxy(QWidget *w)

Définit le proxy de focus du widget sur le widget w. Si w est nullptr, la fonction réinitialise ce widget pour qu’il n’ait plus de proxy de focus.

Certains widgets peuvent « avoir le focus », mais créent un widget enfant, tel que QLineEdit, pour gérer effectivement le focus. Dans ce cas, le widget peut définir la zone de saisie en ligne comme son proxy de focus.

setFocusProxy() définit le widget qui recevra effectivement le focus lorsque « ce widget » l’obtient. S’il existe un proxy de focus, les fonctions setFocus() et hasFocus() agissent sur ce proxy. Si « ce widget » est le widget de focus, alors setFocusProxy() déplace le focus vers le nouveau proxy de focus.

Voir également focusProxy().

void QWidget::setForegroundRole(QPalette::ColorRole role)

Définit le rôle de premier plan du widget sur « role ».

Le rôle de premier plan définit la couleur issue de l'palette du widget qui est utilisée pour dessiner le premier plan.

Si role est QPalette::NoRole, le widget utilise un rôle de premier plan qui contraste avec le rôle d’arrière-plan.

Notez que les styles peuvent choisir librement n’importe quelle couleur de la palette. Vous pouvez modifier la palette ou définir une feuille de style si vous n’obtenez pas le résultat souhaité avec setForegroundRole().

Voir également ` foregroundRole()` et ` backgroundRole()`.

void QWidget::setGeometry(int x, int y, int w, int h)

Cela correspond à `setGeometry(QRect(x, y, w, h))`.

Remarque : fonction de définition (setter ) pour la propriété geometry.

Il s'agit d'une fonction surchargée.

Voir également geometry().

void QWidget::setGraphicsEffect(QGraphicsEffect *effect)

La fonction `setGraphicsEffect` permet de définir l'effet graphique du widget.

Elle définit « effect » comme effet du widget. Si un effet est déjà installé sur ce widget, « QWidget » supprimera l'effet existant avant d'installer le nouvel effet « effect ».

Si « effect » est l’effet installé sur un autre widget, la fonction `setGraphicsEffect()` supprimera cet effet du widget en question et l’installera sur ce widget.

QWidget prend possession de effect.

Remarque : cette fonction applique l’effet à elle-même et à tous ses enfants.

Remarque : les effetsgraphiques ne sont pas pris en charge pour les widgets basés sur OpenGL, tels que QGLWidget, QOpenGLWidget et QQuickWidget.

Voir aussi graphicsEffect().

[slot] void QWidget::setHidden(bool hidden)

Fonction pratique, équivalente à setVisible(!hidden).

Voir également isHidden().

void QWidget::setLayout(QLayout *layout)

Définit le gestionnaire de mise en page de ce widget sur « layout ».

Si un gestionnaire de mise en page est déjà installé sur ce widget, ` QWidget ` ne vous permettra pas d’en installer un autre. Vous devez d’abord supprimer le gestionnaire de mise en page existant (renvoyé par ` layout()`) avant de pouvoir appeler `setLayout()` avec la nouvelle mise en page.

Si ` layout ` est le gestionnaire de mise en page d’un autre widget, la méthode `setLayout()` réattribuera la mise en page à ce widget et en fera son gestionnaire de mise en page.

Exemple :

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(formWidget);
formWidget->setLayout(layout);

Au lieu d’appeler cette fonction, vous pouvez également passer ce widget au constructeur de la mise en page.

L’ QWidget prendra alors possession de layout.

Voir également ` layout()` et « Gestion des mises en page ».

void QWidget::setMask(const QBitmap &bitmap)

Rend visibles uniquement les pixels du widget pour lesquels le paramètre ` bitmap ` contient un bit à 1 correspondant. Si la région comprend des pixels situés en dehors de la zone de ` rect()` du widget, les éléments de contrôle du système de fenêtrage présents dans cette zone peuvent être visibles ou non, selon la plate-forme.

Notez que cet effet peut être lent si la région est particulièrement complexe.

Le code suivant montre comment une image dotée d’un canal alpha peut être utilisée pour générer un masque pour un widget :

QLabel topLevelLabel;
QPixmap pixmap(":/images/tux.png");
topLevelLabel.setPixmap(pixmap);
topLevelLabel.setMask(pixmap.mask());

L'étiquette affichée par ce code est masquée à l'aide de l'image qu'elle contient, ce qui donne l'impression qu'une image de forme irrégulière est dessinée directement à l'écran.

Les widgets masqués ne reçoivent les événements de souris que sur leurs parties visibles.

Voir également mask(), clearMask() et windowOpacity().

void QWidget::setMask(const QRegion &region)

Permet de ne rendre visibles que les parties du widget qui chevauchent region. Si la région comprend des pixels situés en dehors de la zone rect() du widget, les contrôles du système de fenêtrage présents dans cette zone peuvent être visibles ou non, selon la plate-forme.

Comme QRegion permet de créer des régions d’une complexité arbitraire, les masques de widget peuvent être adaptés aux fenêtres aux formes les plus inhabituelles, et permettent même d’afficher des widgets comportant des trous. Notez que cet effet peut être lent si la région est particulièrement complexe.

Les masques de widget servent à indiquer au système de fenêtrage que l’application ne souhaite pas recevoir d’événements de souris pour les zones situées en dehors du masque. Sur la plupart des systèmes, ils entraînent également un découpage visuel grossier. Pour obtenir des bords de fenêtre lisses, utilisez plutôt un arrière-plan translucide et un rendu anti-crénelage, comme illustré dans l’exemple « Arrière-plan translucide ».

Il s’agit d’une fonction surchargée.

Voir également ` windowOpacity`.

void QWidget::setMaximumSize(int maxw, int maxh)

Cette fonction correspond à setMaximumSize(QSize(maxw, maxh)). Elle définit la largeur maximale à maxw et la hauteur maximale à maxh.

Remarque : fonctionde définition de la propriété maximumSize.

Il s'agit d'une fonction surchargée.

Voir également maximumSize().

void QWidget::setMinimumSize(int minw, int minh)

Cette fonction correspond à setMinimumSize(QSize(minw, minh)). Elle définit la largeur minimale à minw et la hauteur minimale à minh.

Remarque : fonctionde définition de la propriété minimumSize.

Il s'agit d'une fonction surchargée.

Voir aussi minimumSize().

void QWidget::setParent(QWidget *parent)

Définit le parent du widget sur parent et réinitialise les indicateurs de fenêtre. Le widget est déplacé à la position (0, 0) dans son nouveau parent.

Si le nouveau widget parent se trouve dans une fenêtre différente, le widget dont le parent a été modifié et ses enfants sont ajoutés à la fin de l’ tab chain du nouveau widget parent, dans le même ordre interne qu’auparavant. Si l’un des widgets déplacés avait le focus clavier, setParent() appelle la méthode clearFocus() pour ce widget.

Si le nouveau widget parent se trouve dans la même fenêtre que l'ancien parent, la modification du parent ne change ni l'ordre de tabulation ni le focus clavier.

Si le « nouveau » widget parent est l’ancien widget parent, cette fonction ne fait rien.

Remarque : le widget devient invisible lors du changement de parent, même s’il était auparavant visible. Vous devez appeler ` show()` pour rendre le widget à nouveau visible.

Avertissement : il est très peu probable que vous ayez un jour besoin de cette fonction. Si vous disposez d’un widget dont le contenu change de manière dynamique, il est bien plus simple d’utiliser ` QStackedWidget`.

Voir aussi ` setWindowFlags()`.

void QWidget::setParent(QWidget *parent, Qt::WindowFlags f)

Cette fonction prend également comme argument des indicateurs de widget, f.

Il s'agit d'une fonction surchargée.

void QWidget::setScreen(QScreen *screen)

Définit l'écran sur lequel le widget doit s'afficher : screen.

La définition de l'écran n'a de sens que pour les fenêtres. Si nécessaire, la fenêtre du widget sera recréée sur screen.

Remarque : si l'écran fait partie d'un bureau virtuel comportant plusieurs écrans, la fenêtre ne se déplacera pas automatiquement vers screen. Pour positionner la fenêtre par rapport à l'écran, utilisez la position topLeft() de l'écran.

Voir également screen() et QWindow::setScreen().

void QWidget::setShortcutAutoRepeat(int id, bool enable = true)

Si la valeur de « enable » est « true », la répétition automatique du raccourci avec l'id spécifiée est activée ; dans le cas contraire, elle est désactivée.

Voir également grabShortcut() et releaseShortcut().

void QWidget::setShortcutEnabled(int id, bool enable = true)

Si la valeur de « enable » est « true », le raccourci associé à l'id on indiquée est activé ; dans le cas contraire, il est désactivé.

Avertissement : vous ne devriez normalement pas avoir besoin d'utiliser cette fonction, car le système de raccourcis de Qt active/désactive automatiquement les raccourcis lorsque les widgets sont masqués/affichés et qu'ils obtiennent ou perdent le focus. Il est préférable d'utiliser QAction ou QShortcut pour gérer les raccourcis, car elles sont plus faciles à utiliser que cette fonction de bas niveau.

Voir également grabShortcut() et releaseShortcut().

void QWidget::setSizeIncrement(int w, int h)

Définit l'incrément de taille x (largeur) sur w et l'incrément de taille y (hauteur) sur h.

Remarque : fonctionde définition de la propriété sizeIncrement.

Il s'agit d'une fonction surchargée.

Voir également sizeIncrement().

void QWidget::setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)

Définit la politique de redimensionnement du widget sur horizontal et vertical, avec un étirement standard et sans adaptation de la hauteur à la largeur.

Remarque : fonctionde définition de la propriété « sizePolicy ».

Il s'agit d'une fonction surchargée.

Voir également sizePolicy() et QSizePolicy::QSizePolicy().

void QWidget::setStyle(QStyle *style)

Définit le style de l'interface graphique du widget sur style. La propriété de l'objet de style n'est pas transférée.

Si aucun style n'est défini, le widget utilise alors le style de l'application, QApplication::style().

La définition d’un style pour un widget n’a aucun effet sur les widgets enfants existants ou futurs.

Avertissement : cette fonction est particulièrement utile à des fins de démonstration, lorsque vous souhaitez présenter les capacités de stylisation de Qt. Dans les applications réelles, il convient de l’éviter et d’utiliser à la place un style d’interface graphique cohérent.

Voir également style(), QStyle, QApplication::style() et QApplication::setStyle().

[static] void QWidget::setTabOrder(QWidget *first, QWidget *second)

Place le widget second après le widget first dans l'ordre de focus.

Cela supprime effectivement le widget second de sa chaîne de focus et l'insère après le widget first.

Notez que, puisque l'ordre de tabulation du widget second est modifié, vous devez organiser la chaîne comme ceci :

setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d

etnon pas ainsi :

// WRONG
setTabOrder(c, d); // c to d
setTabOrder(a, b); // a to b AND c to d
setTabOrder(b, c); // a to b to c, but not c to d

Si first ou second dispose d’un proxy de focus, setTabOrder() remplace correctement le proxy.

Remarque : depuis Qt 5.10 : un widget dont un enfant sert de proxy de focus est considéré comme un widget composé. Lors de la définition d’un ordre de tabulation entre un ou deux widgets composés, l’ordre de tabulation local à l’intérieur de chacun d’eux sera préservé. Cela signifie que si les deux widgets sont des widgets composés, l’ordre de tabulation résultant ira du dernier enfant à l’intérieur de first vers le premier enfant à l’intérieur de second.

Voir également setFocusPolicy(), setFocusProxy() et « Focalisation clavier dans les widgets ».

[static, since 6.6] void QWidget::setTabOrder(std::initializer_list<QWidget *> widgets)

Définit l'ordre de tabulation des widgets de la liste « widgets » en appelant la fonction ` QWidget::setTabOrder(QWidget *, QWidget *)` pour chaque paire consécutive de widgets.

Au lieu de configurer chaque paire manuellement comme ceci :

setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d

vous pouvez appeler :

setTabOrder({a, b, c, d}); // a to b to c to d

Cet appel ne crée pas de boucle de focus fermée. S’il existe d’autres widgets avec la politique de focus « Qt::TabFocus », appuyer sur la touche Tab lors de l’appel de ` d ` déplacera le focus vers l’un de ces widgets, et non vers ` a`.

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.6.

Voir également setFocusPolicy(), setFocusProxy() et le focus clavier dans les widgets.

void QWidget::setWindowFlag(Qt::WindowType flag, bool on = true)

Définit l'indicateur de fenêtre « flag » sur ce widget si la valeur de « on » est vraie ; sinon, il efface cet indicateur.

Remarque : cette fonction appelle ` setParent()` lors de la modification des indicateurs d’une fenêtre, ce qui entraîne le masquage du widget. Vous devez appeler ` show()` pour rendre le widget à nouveau visible.

Voir également setWindowFlags(), windowFlags() et windowType().

void QWidget::setWindowRole(const QString &role)

Définit le rôle de la fenêtre sur « role ». Cela n'a de sens que pour les fenêtres sous X11.

Voir également windowRole().

void QWidget::setWindowState(Qt::WindowStates windowState)

Définit l'état de la fenêtre sur « windowState ». L'état de la fenêtre est une combinaison (via l'opération OR) des valeurs suivantes : « Qt::WindowState » : « Qt::WindowMinimized », « Qt::WindowMaximized », « Qt::WindowFullScreen » et « Qt::WindowActive ».

Si la fenêtre n’est pas visible (c’est-à-dire que isVisible() renvoie false), l’état de la fenêtre prendra effet lorsque show() sera appelé. Pour les fenêtres visibles, le changement est immédiat. Par exemple, pour basculer entre le mode plein écran et le mode normal, utilisez le code suivant :

w->setWindowState(w->windowState() ^ Qt::WindowFullScreen);

Pour restaurer et activer une fenêtre réduite (tout en conservant son état agrandi et/ou plein écran), utilisez ce qui suit :

w->setWindowState((w->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);

L’appel de cette fonction masquera le widget. Vous devez appeler ` show()` pour rendre le widget à nouveau visible.

Remarque : sur certains systèmes de gestion des fenêtres, la fonction ` Qt::WindowActive ` n’est pas immédiate et peut être ignorée dans certains cas.

Lorsque l’état de la fenêtre change, le widget reçoit un appel à ` changeEvent()` de type ` QEvent::WindowStateChange`.

Voir également Qt::WindowState et windowState().

void QWidget::setupUi(QWidget *widget)

Configure l'interface utilisateur pour l'widget spécifiée.

Remarque : cette fonction est disponible avec les widgets dérivés de descriptions d'interface utilisateur créées à l'aide de uic.

Voir également Utilisation d’un fichier d’interface utilisateur du Qt Widgets Designer dans votre application.

[slot] void QWidget::show()

Affiche le widget et ses widgets enfants.

Pour les fenêtres enfants, cela revient à appeler ` setVisible(true)`. Sinon, cela revient à appeler ` showFullScreen()`, ` showMaximized()` ou ` setVisible(true)`, selon le comportement par défaut de la plate-forme concernant les indicateurs de fenêtre.

Voir également raise(), showEvent(), hide(), setVisible(), showMinimized(), showMaximized(), showNormal(), isVisible() et windowFlags().

[virtual protected] void QWidget::showEvent(QShowEvent *event)

Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe afin de recevoir les événements d'affichage des widgets, qui sont transmis via le paramètre ` event `.

Les événements d’affichage non spontanés sont envoyés aux widgets immédiatement avant leur affichage. Les événements d’affichage spontanés des fenêtres sont transmis par la suite.

Remarque : un widget reçoit des événements d’affichage et de masquage spontanés lorsque son état de mappage est modifié par le système de fenêtrage, par exemple un événement de masquage spontané lorsque l’utilisateur minimise la fenêtre, et un événement d’affichage spontané lorsque la fenêtre est restaurée. Après avoir reçu un événement de masquage spontané, un widget est toujours considéré comme visible au sens de la fonction ` isVisible()`.

Voir également visible, event() et QShowEvent.

[slot] void QWidget::showFullScreen()

Affiche le widget en mode plein écran.

L'appel de cette fonction n'affecte que windows.

Pour quitter le mode plein écran, appelez showNormal() ou close().

Remarque : le modeplein écran fonctionne correctement sous Windows, mais présente certains problèmes sous X. Ces problèmes sont dus aux limitations du protocole ICCCM qui spécifie la communication entre les clients X11 et le gestionnaire de fenêtres. ICCCM ne comprend tout simplement pas le concept de fenêtres plein écran sans bordures. Par conséquent, la meilleure solution consiste à demander une fenêtre sans bordure, puis à la positionner et à la redimensionner pour qu’elle occupe tout l’écran. Selon le gestionnaire de fenêtres utilisé, cela peut fonctionner ou non. La fenêtre sans bordure est demandée à l’aide d’indicateurs MOTIF, qui sont au moins partiellement pris en charge par pratiquement tous les gestionnaires de fenêtres modernes.

Une alternative consisterait à contourner complètement le gestionnaire de fenêtres et à créer une fenêtre avec l’indicateur « Qt::X11BypassWindowManagerHint ». Cela pose toutefois d’autres problèmes graves, tels qu’un focus clavier défaillant et des effets très étranges lors des changements de bureau ou lorsque l’utilisateur affiche d’autres fenêtres.

Les gestionnaires de fenêtres X11 qui respectent les spécifications modernes post-ICCCM prennent correctement en charge le mode plein écran.

Sous macOS, l’affichage d’une fenêtre en plein écran place l’application entière en mode plein écran, lui attribuant ainsi un bureau dédié. L’affichage d’une autre fenêtre alors que l’application s’exécute en mode plein écran peut automatiquement faire passer cette fenêtre en mode plein écran également. Pour éviter cela, quittez le mode plein écran en appelant ` showNormal()` ou en utilisant ` close()` sur la fenêtre en plein écran avant d’afficher une autre fenêtre.

Voir également showNormal(), showMaximized(), show(), isVisible() et close().

[slot] void QWidget::showMaximized()

Affiche le widget en mode maximisé.

L'appel de cette fonction n'affecte que windows.

Sous X11, cette fonction peut ne pas fonctionner correctement avec certains gestionnaires de fenêtres. Consultez la documentation sur la géométrie des fenêtres pour plus d’explications.

Voir également setWindowState(), showNormal(), showMinimized(), show(), hide() et isVisible().

[slot] void QWidget::showMinimized()

Affiche le widget réduit, sous forme d'icône.

L'appel de cette fonction n'affecte que windows.

Voir également showNormal(), showMaximized(), show(), hide(), isVisible() et isMinimized().

[slot] void QWidget::showNormal()

Rétablit l'affichage du widget après qu'il a été agrandi ou réduit.

L'appel de cette fonction n'affecte que windows.

Voir également setWindowState(), showMinimized(), showMaximized(), show(), hide() et isVisible().

void QWidget::stackUnder(QWidget *w)

Place le widget sous « w » dans la pile du widget parent.

Pour que cela fonctionne, le widget lui-même et ` w ` doivent être des frères.

Voir également raise() et lower().

QStyle *QWidget::style() const

Voir également QWidget::setStyle(), QApplication::setStyle() et QApplication::style().

[virtual protected] void QWidget::tabletEvent(QTabletEvent *event)

Ce gestionnaire d'événements, destiné à l'event, peut être réimplémenté dans une sous-classe afin de recevoir les événements de tablette destinés au widget.

Si vous réimplémentez ce gestionnaire, il est très important de rediriger l'événement ( ignore() ) si vous ne le gérez pas, afin que le parent du widget puisse l'interpréter.

L’implémentation par défaut ignore l’événement.

Si le suivi de la tablette est désactivé, les événements de déplacement de la tablette ne se produisent que si le stylet est en contact avec la tablette, ou si au moins un bouton du stylet est enfoncé, pendant que le stylet est déplacé. Si le suivi de la tablette est activé, les événements de déplacement de la tablette se produisent même lorsque le stylet survole la tablette, sans qu’aucun bouton ne soit enfoncé.

Voir également QEvent::ignore(), QEvent::accept(), event(), setTabletTracking() et QTabletEvent.

bool QWidget::testAttribute(Qt::WidgetAttribute attribute) const

Renvoie « true » si l'attribut « attribute » est défini sur ce widget ; sinon, renvoie « false ».

Voir également setAttribute().

bool QWidget::underMouse() const

Renvoie ` true ` si le widget se trouve sous le curseur de la souris ; sinon, renvoie ` false`.

Cette valeur n'est pas mise à jour correctement lors des opérations de glisser-déposer.

Voir également enterEvent() et leaveEvent().

void QWidget::ungrabGesture(Qt::GestureType gesture)

Se désabonne du widget d'un type donné de l'gesture

Voir également grabGesture() et QGestureEvent.

[slot] void QWidget::update()

Actualise le widget, sauf si les mises à jour sont désactivées ou si le widget est masqué.

Cette fonction ne provoque pas un rafraîchissement immédiat ; elle planifie plutôt un événement de rafraîchissement qui sera traité lorsque Qt reviendra à la boucle d'événements principale. Cela permet à Qt d'optimiser les performances pour plus de rapidité et moins de scintillement qu'un appel à ` repaint()`.

Appeler update() plusieurs fois n’entraîne généralement qu’un seul appel à paintEvent().

Qt efface généralement la zone du widget avant l’appel à ` paintEvent()`. Si l’attribut du widget ` Qt::WA_OpaquePaintEvent ` est défini, c’est au widget qu’il incombe de colorer tous ses pixels avec une couleur opaque.

Remarque : ce slot est surchargé. Pour vous connecter à ce slot :

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        widget, qOverload<>(&QWidget::update));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        widget, [receiver = widget]() { receiver->update(); });
Pour plus d’exemples et d’approches, voir la section « Connexion à des slots surchargés ».

Voir également ` repaint()`, ` paintEvent()`, ` setUpdatesEnabled()` et « Horloge analogique ».

void QWidget::update(const QRect &rect)

Cette version met à jour un rectangle rect à l'intérieur du widget.

Il s'agit d'une fonction surchargée.

void QWidget::update(const QRegion &rgn)

Cette version actualise l'affichage d'une région rgn à l'intérieur du widget.

Il s'agit d'une fonction surchargée.

void QWidget::update(int x, int y, int w, int h)

Cette version met à jour un rectangle (x, y, w, h) à l'intérieur du widget.

Il s'agit d'une fonction surchargée.

void QWidget::updateGeometry()

Indique au système de mise en page que ce widget a changé et qu'il pourrait être nécessaire de modifier sa géométrie.

Appelez cette fonction si les méthodes ` sizeHint()` ou ` sizePolicy()` ont été modifiées.

Pour les widgets explicitement masqués, la fonction updateGeometry() n'a aucun effet. Le système de mise en page sera informé dès que le widget sera affiché.

[protected slot] void QWidget::updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll)

Met à jour le « micro-focus » du widget et signale aux méthodes de saisie que l'état spécifié par ` query ` a changé.

QRegion QWidget::visibleRegion() const

Renvoie la zone non masquée où des événements de dessin peuvent se produire.

Pour les widgets visibles, il s'agit d'une approximation de la zone non recouverte par d'autres widgets ; dans le cas contraire, il s'agit d'une région vide.

La fonction ` repaint()` appelle cette fonction si nécessaire ; vous n'avez donc généralement pas besoin de l'appeler vous-même.

[virtual protected] void QWidget::wheelEvent(QWheelEvent *event)

Ce gestionnaire d'événements, destiné à l'event, peut être réimplémenté dans une sous-classe afin de recevoir les événements de molette pour le widget.

Si vous réimplémentez ce gestionnaire, il est très important que vous appeliez ` ignore() ` si vous ne gérez pas l'événement, afin que le parent du widget puisse l'interpréter.

L’implémentation par défaut ignore l’événement.

Voir également QEvent::ignore(), QEvent::accept(), event() et QWheelEvent.

WId QWidget::winId() const

Renvoie l'identifiant du système de fenêtrage du widget.

En principe portable, mais si vous l'utilisez, c'est probablement que vous vous apprêtez à faire quelque chose de non portable. Soyez prudent.

Si un widget n'est pas natif (« alien ») et que la fonction winId() est appelée sur celui-ci, ce widget se verra attribuer un descripteur natif.

Cette valeur peut changer lors de l'exécution. Un événement de type « QEvent::WinIdChange » sera envoyé au widget suite à un changement d'identifiant du système de fenêtrage.

Voir également find().

QWidget *QWidget::window() const

Renvoie la fenêtre associée à ce widget, c'est-à-dire le widget ancêtre suivant qui possède (ou pourrait posséder) un cadre du système de fenêtrage.

Si le widget est une fenêtre, c'est le widget lui-même qui est renvoyé.

Une utilisation courante consiste à modifier le titre de la fenêtre :

aWidget->window()->setWindowTitle("New Window Title");

Voir également isWindow().

QWindow *QWidget::windowHandle() const

S'il s'agit d'un widget natif, renvoie la méthode ` QWindow` associée. Sinon, renvoie `null`.

Les widgets natifs comprennent les widgets de niveau supérieur, les QGLWidget et les widgets enfants sur lesquels la fonction ` winId()` a été appelée.

Voir également ` winId()` et ` screen()`.

[signal] void QWidget::windowIconChanged(const QIcon &icon)

Ce signal est émis lorsque l'icône de la fenêtre a changé, avec la nouvelle icon en tant qu'argument.

Remarque : signalNotifier pour la propriété windowIcon.

QString QWidget::windowRole() const

Renvoie le rôle de la fenêtre, ou une chaîne vide.

Voir également setWindowRole(), windowIcon et windowTitle.

Qt::WindowStates QWidget::windowState() const

Renvoie l'état actuel de la fenêtre. L'état de la fenêtre correspond à la combinaison (via l'opération OU) des valeurs suivantes : Qt::WindowState: Qt::WindowMinimized, Qt::WindowMaximized, Qt::WindowFullScreen et Qt::WindowActive.

Voir également Qt::WindowState et setWindowState().

[signal] void QWidget::windowTitleChanged(const QString &title)

Ce signal est émis lorsque le titre de la fenêtre a changé, avec la nouvelle valeur de la propriété « title » comme argument.

Remarque : signalNotifier pour la propriété windowTitle.

Qt::WindowType QWidget::windowType() const

Renvoie le type de fenêtre de ce widget. Cette fonction est identique à ` windowFlags()` et ` Qt::WindowType_Mask`.

Voir également windowFlags.

Documentation sur les macros

QWIDGETSIZE_MAX

Définit la taille maximale d'un objet « QWidget ».

La taille maximale autorisée pour un widget est QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX), c'est-à-dire QSize (16777215,16777215).

Voir également QWidget::setMaximumSize().

© 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.