QWidget Class
La classe QWidget est la classe de base de tous les objets de l'interface utilisateur. Plus d'informations...
| En-tête : | #include <QWidget> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérite : | QObject et QPaintDevice |
| Héritée par : | 39 typesQAbstractButton QAbstractSlider QTabWidget QToolBar, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , xml-ph- QAbstractSpinBox QCalendarWidget QComboBox QDesignerActionEditorInterface QDesignerFormWindowInterface QDesignerObjectInspectorInterface QDesignerPropertyEditorInterface QDesignerWidgetBoxInterface QDialog QDialogButtonBox QDockWidget QFocusFrame QFrame QGroupBox QHelpFilterSettingsWidget QHelpSearchQueryWidget QHelpSearchResultWidget QKeySequenceEdit QLineEdit QMainWindow QMdiSubWindow QMenu QMenuBar QOpenGLWidget QProgressBar QQuickWidget QRhiWidget QRubberBand QSizeGrip QSplashScreen QSplitterHandle QStatusBar QSvgWidget QTabBar QWizardPage |
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 (QAction *action) | addAction(QAction *action) |
(since 6.3) QAction * | addAction(const QString &text) |
(since 6.3) QAction * | addAction(const QIcon &icon, const QString &text) |
(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 gesture, Qt::GestureFlags flags = 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 | hasEditFocus() const |
| bool | hasFocus() constantes |
| bool virtuel | hasHeightForWidth() const |
| bool | hasMouseTracking() const |
| bool | hasTabletTracking() constantes |
| 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 *ancestor) 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 |
| QSize virtuel | 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() |
| vide | 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 (int x, int y, int w, int h) | resize(int w, int h) |
| void (int w, int h) | resize(const QSize &) |
| bool | restoreGeometry(const QByteArray &geometry) |
| QByteArray | saveGeometry() const |
| QScreen * | screen() const |
| void | scroll(int dx, int dy) |
| void (int dx, int dy) | scroll(int dx, int dy, const QRect &r) |
| void | setAcceptDrops(bool on) |
| void | setAccessibleDescription(const QString &description) |
| void (const QString &description) | setAccessibleIdentifier(const QString &identifier) |
| void (const QString &identifier) | setAccessibleName(const QString &nom) |
| void | setAttribute(Qt::WidgetAttribute attribute, 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 (int gauche, int haut, int droite, int bas) | setContentsMargins(const QMargins &margins) |
| void | setContextMenuPolicy(Qt::ContextMenuPolicy policy) |
| void | setCursor(const QCursor &) |
| void | setEditFocus(bool enable) |
| vide | setFixedHeight(int h) |
| void | setFixedSize(const QSize &s) |
| void (int w, int h) | setFixedSize(int w, int h) |
| void (int w, int h) | setFixedWidth(int w) |
| void | setFocus(Qt::FocusReason raison) |
| void | setFocusPolicy(Qt::FocusPolicy politique) |
| void | setFocusProxy(QWidget *w) |
| void | setFont(const QFont &) |
| void | setForegroundRole(QPalette::ColorRole role) |
| void | setGeometry(int x, int y, int w, int h) |
| void (int x, int y, int w, int h) | setGeometry(const QRect &) |
| void | setGraphicsEffect(QGraphicsEffect *effect) |
| 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 (const QBitmap &bitmap) | setMask(const QRegion ®ion) |
| void | setMaximumHeight(int maxh) |
| void (int maxh) | setMaximumSize(const QSize &) |
| void | setMaximumSize(int maxw, int maxh) |
| void (int maxw, int maxh) | setMaximumWidth(int maxw) |
| void | setMinimumHeight(int minh) |
| void | setMinimumSize(const QSize &) |
| void | setMinimumSize(int minw, int minh) |
| void (int minw, int minh) | setMinimumWidth(int minw) |
| void (int minw, int minh) | setMouseTracking(bool enable) |
| void (bool) | setPalette(const QPalette &) |
| void | setParent(QWidget *parent) |
| void | setParent(QWidget *parent, Qt::WindowFlags f) |
| void | setScreen(QScreen *screen) |
| void | setShortcutAutoRepeat(int id, bool enable = true) |
| void (int id, bool enable = true) | setShortcutEnabled(int id, bool enable = true) |
| void | setSizeIncrement(const QSize &) |
| void | setSizeIncrement(int w, int h) |
| void | setSizePolicy(QSizePolicy) |
| void | setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical) |
| void | setStatusTip(const QString &) |
| void | setStyle(QStyle *style) |
| void | setTabletTracking(bool enable) |
| void (bool) | setToolTip(const QString &) |
| void (int msec) | setToolTipDuration(int msec) |
| void (int msec) | setUpdatesEnabled(bool enable) |
| void (bool) | setWhatsThis(const QString &) |
| void (const QString &) | 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 windowState) |
| void | setupUi(QWidget *widget) |
| QSize | size() const |
| QSize virtuel | 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 attribute) const |
| QString | toolTip() const |
| int | toolTipDuration() const |
| bool | underMouse() const |
| void | ungrabGesture(Qt::GestureType gesture) |
| void | unsetCursor() |
| void | unsetLayoutDirection() |
| void | unsetLocale() |
| void | update(const QRect &rect) |
| void (const QRect &rect) | update(const QRegion &rgn) |
| void (int x, int y, int w, int h) | update(int x, int y, int w, int h) |
| void (int x, int y, int w, int h) | 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 |
Emplacements 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
| bool virtuel | event(QEvent *event) surcharge |
| vide virtuel | initPainter(QPainter *painter) const override |
| virtual int | metric(QPaintDevice::PaintDeviceMetric m) const override |
Emplacements protégés
| void | updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll) |
Macros
Description détaillée
Le widget est l'atome de l'interface utilisateur : il reçoit la souris, le clavier et d'autres événements du système de fenêtres, et peint une représentation de lui-même sur l'écran. Chaque widget est rectangulaire, et ils sont triés dans un ordre Z. Un widget est encadré par sa fenêtre. Un widget est encadré par son parent et par les widgets situés devant lui.
Un widget qui n'est pas intégré dans un widget parent est appelé une fenêtre. En général, les fenêtres ont un cadre et une barre de titre, bien qu'il soit également possible de créer des fenêtres sans ces décorations à l'aide de window flags. Dans Qt XML, QMainWindow et les diverses sous-classes de QDialog sont les types de fenêtres les plus courants.
Le constructeur de chaque widget accepte un ou deux arguments standard :
QWidget *parent = nullptrest le parent du nouveau widget. S'il vautnullptr(par défaut), le nouveau widget sera une fenêtre. Sinon, il sera un enfant du parent et sera contraint par la géométrie du parent(à moins que vous ne spécifiiez Qt::Window comme drapeau de fenêtre).Qt::WindowFlags f = { }(si disponible) définit les drapeaux de fenêtre ; la valeur par défaut convient à la plupart des widgets, mais pour obtenir, par exemple, une fenêtre sans cadre de système de fenêtre, vous devez utiliser des drapeaux spéciaux.
QWidget possède de nombreuses fonctions membres, mais certaines d'entre elles ont peu de fonctionnalités directes ; par exemple, QWidget possède une propriété de police, 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 premier niveau). Pour ces widgets, setWindowTitle() et setWindowIcon() définissent respectivement la barre de titre et l'icône.
Les widgets sans fenêtre sont des widgets enfants, affichés à l'intérieur de leurs widgets parents. La plupart des widgets de Qt Widgets sont principalement utiles en tant que widgets enfants. Par exemple, il est possible d'afficher un bouton dans une fenêtre de premier niveau, mais la plupart des gens préfèrent placer leurs boutons dans d'autres widgets, tels que QDialog.

Un widget parent contenant plusieurs widgets enfants.
Le diagramme ci-dessus montre un widget QGroupBox utilisé pour contenir plusieurs widgets enfants dans une disposition fournie par QGridLayout. Les widgets enfants de QLabel ont été soulignés 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. Voir Gestion des dispositions pour plus d'informations.
Widgets composites
Lorsqu'un widget est utilisé comme conteneur pour regrouper un certain nombre de widgets enfants, il est appelé widget composite. Ceux-ci peuvent être créés en construisant un widget avec les propriétés visuelles requises - un QFrame, par exemple - et en lui 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 Qt Widgets.
Widgets personnalisés et peinture
QWidget étant une sous-classe de QPaintDevice, les sous-classes peuvent être utilisées pour afficher un contenu personnalisé composé à l'aide d'une série d'opérations de peinture 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 sont rendus par le cadre lui-même.
Chaque widget effectue toutes les opérations de peinture à partir de sa fonction paintEvent(). Cette fonction 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 de l'horloge analogique montre comment un simple widget peut gérer les événements de peinture.
Indices et politiques de taille
Lors de l'implémentation d'un nouveau widget, il est presque toujours utile de réimplémenter sizeHint() pour fournir une taille par défaut raisonnable pour le widget et pour définir la politique de taille correcte avec setSizePolicy().
Par défaut, les widgets composites qui ne fournissent pas d'indication de taille seront dimensionnés en fonction de l'espace requis par leurs widgets enfants.
La politique de taille vous permet de fournir un bon comportement par défaut pour le système de gestion de la mise en page, afin que d'autres widgets puissent contenir et gérer le vôtre facilement. La politique de taille par défaut indique que l'indice 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 premier niveau est limitée à 2/3 de la hauteur et de la largeur du bureau. Vous pouvez resize() le widget manuellement si ces limites sont inadéquates.
Événements
Les widgets répondent à des événements qui sont généralement provoqués par des actions de l'utilisateur. Qt Widgets fournit des événements aux widgets en appelant des fonctions de gestion d'événements spécifiques avec des instances de sous-classes 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 des 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 met en œuvre un ensemble plus large d'événements pour gérer les mouvements de la souris, les pressions sur les boutons et le redimensionnement de la fenêtre.
Vous devrez fournir 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é chaque fois que le widget doit être repeint. Chaque widget affichant un contenu personnalisé doit l'implémenter. La peinture à l'aide de QPainter ne peut avoir lieu que dans un paintEvent() ou une fonction appelée par un paintEvent().
- resizeEvent() est appelée lorsque le widget a été redimensionné.
- mousePressEvent() est appelé lorsqu'un bouton de souris est pressé alors que le curseur de la souris se trouve à l'intérieur du widget, ou lorsque le widget a saisi la souris à l'aide de grabMouse(). Appuyer sur la souris sans la relâcher revient à appeler grabMouse().
- mouseReleaseEvent() est appelé lorsqu'un bouton de la souris est relâché. Un widget reçoit les événements de relâchement de la souris lorsqu'il a reçu l'événement de pression de la souris correspondant. Cela signifie que si l'utilisateur appuie sur la souris à l'intérieur de votre widget, puis fait glisser la souris ailleurs avant de relâcher le bouton de la souris, 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 vole immédiatement les événements de la souris.
- mouseDoubleClickEvent() est appelé lorsque l'utilisateur double-clique dans le widget. Si l'utilisateur double-clique, le widget reçoit un événement de pression de la souris, un événement de relâchement de la souris, (un événement de clic de la souris,) une seconde pression de la souris, cet événement et enfin un second événement de relâchement de la souris. (Certains événements de déplacement de la souris peuvent également être reçus si la souris n'est pas maintenue stable 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 livres sur les interfaces graphiques recommandent que les doubles clics soient une extension des simples clics, plutôt que de déclencher une action différente).
Les widgets qui acceptent les saisies au clavier doivent réimplémenter quelques autres gestionnaires d'événements :
- keyPressEvent() est appelé à chaque fois qu'une touche est enfoncée, et à nouveau lorsqu'une touche a été maintenue enfoncée suffisamment longtemps pour qu'elle soit répétée automatiquement. 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 ces touches à être traitées par votre widget, vous devez réimplémenter QWidget::event().
- focusInEvent() est appelé lorsque le widget obtient le focus clavier (en supposant que vous ayez appelé setFocusPolicy()). Les widgets qui se comportent bien indiquent qu'ils possèdent le focus clavier d'une manière claire mais discrète.
- focusOutEvent() est appelé lorsque le widget perd le focus clavier.
Il se peut que vous deviez également réimplémenter certains des gestionnaires d'événements les moins courants :
- mouseMoveEvent() est appelé lorsque la souris se déplace alors qu'un bouton de la souris est maintenu enfoncé. Cela peut s'avérer utile lors des opérations de glisser-déposer. Si vous appelez setMouseTracking(true), vous obtenez les événements de déplacement de la souris même si aucun bouton n'est maintenu enfoncé. (Voir également le guide sur le glisser-déposer ).
- keyReleaseEvent() est appelé chaque fois qu'une touche est relâchée et pendant qu'elle est maintenue enfoncée (si la touche est répétée automatiquement). Dans ce cas, le widget recevra une paire d'événements de relâchement et d'enfoncement de la 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 ces touches à être traitées par votre widget, vous devez réimplémenter QWidget::event().
- wheelEvent() est appelé chaque fois que l'utilisateur tourne la molette de la souris alors que le widget a le focus.
- enterEvent() est appelé lorsque la souris entre dans l'espace d'écran du widget. (Cela exclut l'espace d'écran appartenant à l'un des enfants du widget).
- leaveEvent() est appelé lorsque la souris quitte l'espace d'écran du widget. Si la souris entre dans un widget enfant, elle ne provoquera pas de 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é).
Il existe également des événements assez obscurs décrits dans la documentation de QEvent::Type. Pour gérer ces événements, vous devez réimplémenter directement event().
L'implémentation par défaut de event() gère Tab et Shift+Tab (pour déplacer le focus clavier), et transmet la plupart des autres événements à l'un des gestionnaires plus spécialisés ci-dessus.
Les événements et le mécanisme utilisé pour les délivrer sont traités dans Le système d'événements.
Groupes de fonctions et de propriétés
Feuilles de style de widgets
Outre les styles de widgets standard pour chaque plateforme, les widgets peuvent également être stylisés selon des 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 des indications visuelles aux utilisateurs quant à leur fonction. Par exemple, un bouton peut ê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 sur les feuilles de style de Qt.
Transparence et double tampon
QWidget met automatiquement en double tampon sa peinture, il n'est donc pas nécessaire d'écrire du 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 Qt::WA_PaintOnScreen n'est pas défini. Des widgets personnalisés peuvent être écrits pour tirer parti de cette fonctionnalité en mettant à jour des régions irrégulières (pour créer des widgets enfants non rectangulaires) ou en peignant avec des couleurs dont la composante alpha n'est pas complète. Le diagramme suivant montre comment les attributs et les propriétés d'un widget personnalisé peuvent être affinés pour obtenir différents effets.

Dans le diagramme ci-dessus, un widget enfant rectangulaire semi-transparent dont une zone a été supprimée est construit et ajouté à un widget parent ( QLabel affichant un pixmap). Ensuite, différentes propriétés et différents attributs de widget sont définis pour obtenir différents effets :
- Le widget de gauche n'a pas de propriétés ou d'attributs supplémentaires. Cet état par défaut convient à la plupart des widgets personnalisés qui ont de la transparence, sont de forme irrégulière ou ne peignent pas toute leur surface avec un pinceau opaque.
- La propriété autoFillBackground est définie pour le widget central. 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 couvrent pas toute leur surface avec un pinceau opaque.
- Le widget de droite possède l'attribut Qt::WA_OpaquePaintEvent. Cela indique que le widget va peindre toute sa zone avec des couleurs opaques. La zone du widget sera initialement non initialisée, représentée dans le diagramme par un motif de grille diagonale rouge qui transparaît dans la zone recouverte de peinture.
Pour mettre à jour rapidement les widgets personnalisés avec des couleurs d'arrière-plan simples, tels que les widgets de traçage ou de graphique en temps réel, il est préférable de définir une couleur d'arrière-plan appropriée (en utilisant setBackgroundRole() avec le rôle QPalette::Window ), de définir la propriété autoFillBackground et d'implémenter uniquement la fonctionnalité de dessin nécessaire dans la fonction paintEvent() du widget.
Pour mettre à jour rapidement les widgets personnalisés qui recouvrent constamment leurs zones entières d'un contenu opaque, par exemple les widgets de streaming vidéo, il est préférable de définir la propriété Qt::WA_OpaquePaintEvent du widget, ce qui permet d'éviter toute surcharge inutile liée au fait de repeindre l'arrière-plan du widget.
Si un widget possède à la fois l'attribut Qt::WA_OpaquePaintEvent et la propriété autoFillBackground, l'attribut Qt::WA_OpaquePaintEvent est prioritaire. En fonction de vos besoins, vous pouvez choisir l'un ou l'autre.
Le contenu des widgets parents est également propagé aux widgets Qt Widgets standard. Cela peut conduire à des résultats inattendus si le widget parent est décoré d'une manière non standard, comme le montre le diagramme ci-dessous.

La possibilité de personnaliser le comportement de peinture des Qt Widgets standard, sans avoir recours à une sous-classe, est légèrement inférieure à celle des 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 avec des régions translucides sur les systèmes de fenêtres qui prennent en charge la composition.
Pour activer cette fonctionnalité dans un widget de premier niveau, définissez son attribut Qt::WA_TranslucentBackground avec setAttribute() et assurez-vous que son arrière-plan est peint avec des couleurs non opaques dans les régions que vous souhaitez rendre partiellement transparentes.
Notes sur la plate-forme :
- X11 : Cette fonctionnalité repose sur l'utilisation d'un serveur X qui prend en charge les visuels ARGB et un gestionnaire de fenêtres de composition.
- Windows : Le widget doit avoir le drapeau de fenêtre Qt::FramelessWindowHint activé pour que la translucidité fonctionne.
- macOS : Le widget doit avoir l'indicateur de fenêtre Qt::FramelessWindowHint 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 à une poignée de fenêtre native. Cette fonctionnalité accélère considérablement la peinture et le redimensionnement des widgets et supprime le scintillement.
Si vous souhaitez conserver l'ancien comportement avec les fenêtres natives, choisissez l'une des options suivantes :
- Utilisez le site
QT_USE_NATIVE_WINDOWS=1dans votre environnement. - Définissez l'attribut Qt::AA_NativeWindows sur votre application. Tous les widgets seront des widgets natifs.
- Définissez l'attribut Qt::WA_NativeWindow sur les widgets : Le widget lui-même et tous ses ancêtres deviendront des widgets natifs (à moins que l'attribut Qt::WA_DontCreateNativeAncestors ne soit défini).
- Appelez QWidget::winId pour imposer une fenêtre native (ce qui implique 3).
- Définissez l'attribut Qt::WA_PaintOnScreen pour imposer une fenêtre native (ce qui implique 3).
Voir aussi QEvent, QPainter, QGridLayout, et QBoxLayout.
Documentation des types de membres
enum QWidget::RenderFlag
flags QWidget::RenderFlags
Cette énumération décrit le mode de rendu du widget lors de l'appel à QWidget::render().
| Constante | Valeur | Description |
|---|---|---|
QWidget::DrawWindowBackground | 0x1 | Si vous activez cette option, l'arrière-plan du widget est rendu dans la cible même si autoFillBackground n'est pas défini. Cette option est activée par défaut. |
QWidget::DrawChildren | 0x2 | Si vous activez cette option, les enfants du widget sont rendus récursivement dans la cible. Cette option est activée par défaut. |
QWidget::IgnoreMask | 0x4 | Si vous activez cette option, l'adresse QWidget::mask() du widget est ignorée lors du rendu dans la cible. Cette option est désactivée par défaut. |
Le type RenderFlags est un typedef pour QFlags<RenderFlag>. Il stocke une combinaison OU de valeurs RenderFlag.
Documentation sur les propriétés
acceptDrops : bool
Cette propriété indique si les événements de chute sont activés pour ce widget
La définition de cette propriété à true annonce au système que ce widget peut être en mesure d'accepter des événements de chute.
Attention : Ne pas modifier cette propriété dans un gestionnaire d'événements de type "drag and drop".
Par défaut, cette propriété est false.
Fonctions d'accès :
| bool | acceptDrops() const |
| void | setAcceptDrops(bool on) |
Voir aussi Drag and Drop.
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 ce qu'il fait. Alors que le accessibleName doit être une chaîne de caractères courte et concise (par exemple, Save), la description doit donner plus de contexte, comme Saves the current document (Sauvegarde le document actuel).
Cette propriété doit être localisée.
Par défaut, cette propriété contient une chaîne vide et Qt se rabat sur l'utilisation de l'infobulle pour fournir cette information.
Fonctions d'accès :
| QString | accessibleDescription() const |
| void | setAccessibleDescription(const QString &description) |
Voir aussi 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
S'il est défini, l'identifiant accessible d'un widget peut être utilisé par les technologies d'assistance afin d'identifier un widget spécifique, par exemple dans les tests automatisés.
Cette propriété 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 par 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 fournit aucun texte. Par exemple, un bouton qui ne contient qu'une icône doit définir cette propriété pour fonctionner avec les lecteurs d'écran. Le nom doit être court et équivalent à l'information visuelle transmise 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 aussi QWidget::accessibleDescription et QAccessibleInterface::text().
autoFillBackground : bool
Cette propriété indique si l'arrière-plan du widget est rempli automatiquement
Si cette propriété est activée, Qt remplira l'arrière-plan du widget avant d'invoquer l'événement paint. La couleur utilisée est définie par le rôle de couleur QPalette::Window du widget palette.
En outre, les fenêtres sont toujours remplies avec QPalette::Window, à moins que les attributs WA_OpaquePaintEvent ou WA_NoSystemBackground ne soient définis.
Cette propriété ne peut pas être désactivée (c'est-à-dire définie à false) si le parent d'un widget a un gradient statique pour son arrière-plan.
Attention : Utilisez cette propriété avec précaution en conjonction avec les feuilles de style Qt. Lorsqu'un widget possède une feuille de style avec un arrière-plan ou une image de bordure valide, cette propriété est automatiquement désactivée.
Par défaut, cette propriété est 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 est utilisée pour calculer une taille de widget appropriée si le widget définit sizeIncrement().
Par défaut, pour un widget nouvellement créé, cette propriété contient une taille avec une largeur et une hauteur nulles.
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 de délimitation des enfants du widget
Les enfants cachés sont exclus.
Par défaut, pour un widget sans enfant, cette propriété contient un rectangle de largeur et de hauteur nulles situé à l'origine.
Fonctions d'accès :
| QRect | childrenRect() const |
Voir aussi childrenRegion() et geometry().
[read-only] childrenRegion : QRegion
Cette propriété contient la région combinée occupée par les enfants du widget
Les enfants cachés sont exclus.
Par défaut, pour un widget sans enfant, 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 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 sera au-dessus de ce widget. Voir le site list of predefined cursor objects pour une gamme de formes utiles.
Un widget éditeur peut utiliser un curseur en forme de poutre en I :
setCursor(Qt::IBeamCursor);
Si aucun curseur n'a été défini, ou après un appel à unsetCursor(), le curseur du parent est utilisé.
Par défaut, cette propriété contient un curseur ayant la forme Qt::ArrowCursor.
Certaines implémentations de fenêtres sous-jacentes réinitialisent le curseur s'il quitte un widget, même si la souris est saisie. Si vous souhaitez qu'un curseur soit défini pour tous les widgets, même lorsqu'ils sont en dehors de la fenêtre, vous pouvez utiliser 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 liés au clavier et à la souris ; un widget désactivé ne le fait pas. Une exception est faite avec QAbstractButton.
Certains widgets s'affichent différemment lorsqu'ils sont désactivés. Par exemple, un bouton peut afficher son étiquette en gris. Si votre widget doit savoir quand il est activé ou désactivé, vous pouvez utiliser 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 alors que son widget parent reste désactivé.
Par défaut, cette propriété est 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) a le focus de l'entrée clavier
Par défaut, cette propriété vaut false.
Remarque : Obtenir la valeur de cette propriété pour un widget équivaut en fait à vérifier si QApplication::focusWidget() fait référence au 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 la suivante : Qt::TabFocus si le widget accepte le focus clavier par tabulation, Qt::ClickFocus si le widget accepte le focus en cliquant, Qt::StrongFocus s'il accepte les deux, et Qt::NoFocus (la 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 les événements clavier. Cela se fait normalement à partir du constructeur du widget. Par exemple, le constructeur de QLineEdit appelle setFocusPolicy(Qt::StrongFocus).
Si le widget dispose d'un proxy de mise au point, la politique de mise au point sera propagée à ce dernier.
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 pour le widget. La police est utilisée par le style du widget lors du rendu des composants standard, et est disponible comme moyen de garantir que les widgets personnalisés peuvent maintenir la cohérence avec l'aspect et la convivialité de la plateforme native. Il est fréquent que différentes plateformes ou différents styles définissent différentes polices pour une application.
Lorsque vous attribuez une nouvelle police à un widget, les propriétés de cette police sont combinées avec la police par défaut du widget pour former la police finale du widget. Vous pouvez appeler 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 du système. QApplication maintient une police système/thème qui sert de police par défaut pour tous les widgets. Il peut également y avoir des polices spéciales par défaut pour 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 pour trouver la meilleure correspondance.
QWidget propage les propriétés explicites des polices de parent à enfant. Si vous modifiez une propriété spécifique d'une police et que vous assignez cette police à un widget, cette propriété se propagera à tous les enfants du widget, en remplaçant toutes les valeurs par défaut du système pour cette propriété. Notez que les polices par défaut ne se propagent pas aux fenêtres (voir isWindow()) à moins que l'attribut Qt::WA_WindowPropagation ne soit activé.
QWidgetLa propagation des polices de caractères est similaire à celle de la palette.
Le style courant, qui est utilisé pour rendre le contenu de tous les widgets standards de Qt, est libre de choisir d'utiliser la police du widget, ou dans certains cas, de l'ignorer (partiellement, ou complètement). En particulier, certains styles comme GTK style, Mac style, et Windows Vista style, appliquent des modifications spéciales à la police du widget pour correspondre à l'apparence native de la plateforme. Pour cette raison, l'attribution de propriétés à la police d'un widget ne garantit pas la modification de l'apparence du widget. Au lieu de cela, vous pouvez choisir d'appliquer une feuille de style.
Remarque : Si des feuilles de style Qt sont utilisées sur le même widget que setFont(), les feuilles de style auront la priorité en cas de conflit entre les paramètres.
Fonctions d'accès :
| const QFont & | font() const |
| void | setFont(const QFont &) |
Voir aussi fontInfo() et fontMetrics().
[read-only] frameGeometry : QRect
géométrie du widget par rapport à son parent, y compris le cadre de la fenêtre.
Voir la documentation sur la géométrie des fenêtres pour une vue d'ensemble des problèmes de géométrie avec les 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 est affiché en mode plein écran
Un widget en mode plein écran occupe toute la surface de l'écran et n'affiche pas les décorations de la fenêtre, telles que la barre de titre.
Par défaut, cette propriété est false.
Fonctions d'accès :
| bool | isFullScreen() const |
Voir également windowState(), minimized et maximized.
geometry : QRect
Cette propriété définit la géométrie du widget par rapport à son parent, à l'exclusion du cadre de la fenêtre
Lorsque la géométrie est modifiée, 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 actuellement visible, il est garanti qu'il recevra les événements appropriés avant d'être affiché.
Le composant de taille est ajusté s'il se situe en dehors de la plage définie par minimumSize() et maximumSize().
Attention : Appeler setGeometry() à l'intérieur de resizeEvent() ou moveEvent() peut conduire à une récursion infinie.
Voir la documentation sur la géométrie des fenêtres pour une vue d'ensemble des problèmes de géométrie avec les 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é indique la hauteur du widget, à l'exclusion de tout cadre de fenêtre
Voir la documentation sur la géométrie des fenêtres pour une vue d'ensemble des problèmes de géométrie avec les fenêtres.
Par défaut, cette propriété contient une valeur qui dépend de la plate-forme de l'utilisateur et de screen geometry.
Fonctions d'accès :
| int | height() const |
Voir également geometry, width, et size.
inputMethodHints : Qt::InputMethodHints
Indications spécifiques à la méthode d'entrée dont dispose le widget.
Cette information n'est pertinente que pour les widgets de saisie. Elle est utilisée par la méthode de saisie pour récupérer des indications sur la manière dont la méthode de saisie 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 nombres peuvent être saisis.
Attention : Certains widgets nécessitent certains drapeaux pour fonctionner comme prévu. Pour activer un indicateur, faites w->setInputMethodHints(w->inputMethodHints()|f) au lieu de w->setInputMethodHints(f).
Remarque : les drapeaux ne sont que des indications, de sorte que l'implémentation de la méthode de saisie est libre de les ignorer. Si vous voulez être sûr qu'un certain type de caractères est saisi, vous devez également définir une valeur QValidator pour 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 la fenêtre qui contient le widget qui a le focus clavier (la fenêtre peut toujours avoir le focus si elle n'a pas de widgets ou si aucun de ses widgets n'accepte le focus clavier).
Lorsque des fenêtres contextuelles sont visibles, cette propriété est true à la fois pour la fenêtre active et pour la fenêtre contextuelle.
Par défaut, cette propriété vaut false.
Fonctions d'accès :
| bool | isActiveWindow() const |
Voir également activateWindow() et QApplication::activeWindow().
layoutDirection : Qt::LayoutDirection
Cette propriété contient la direction de la mise en page pour ce widget.
Note : Cette méthode n'affecte plus la direction de la mise en page du texte depuis Qt 4.7.
Par défaut, cette propriété est définie sur Qt::LeftToRight.
Lorsque la direction de la mise en page est définie sur un widget, elle se propage aux enfants du widget, mais pas à un enfant qui est une fenêtre ni à un enfant pour lequel setLayoutDirection() a été explicitement appelé. En outre, les widgets enfants ajoutés après que setLayoutDirection() a été appelée pour le parent n'héritent pas de la direction de présentation du parent.
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 la locale du widget
Tant qu'aucune locale spéciale n'a été définie, il s'agit soit de la locale du parent, soit de la locale par défaut (si ce widget est un widget de niveau supérieur).
Si le widget affiche des dates ou des nombres, ceux-ci doivent être formatés en utilisant la locale 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é indique si ce widget est maximisé
Cette propriété ne concerne que les fenêtres.
Note : En raison des limitations de certains systèmes de fenêtres, cette propriété ne donne pas toujours les résultats escomptés (par exemple, si l'utilisateur de X11 maximise la fenêtre via le gestionnaire de fenêtres, Qt n'a aucun moyen de faire la distinction avec un autre redimensionnement). Cela devrait s'améliorer au fur et à mesure de l'évolution des protocoles de gestion des fenêtres.
Par défaut, cette propriété est false.
Fonctions d'accès :
| bool | isMaximized() const |
Voir également windowState(), showMaximized(), visible, show(), hide(), showNormal() et minimized.
maximumHeight : int
Cette propriété indique la hauteur maximale du widget en pixels
Cette propriété correspond à la hauteur contenue dans la propriété maximumSize.
Par défaut, cette propriété contient la valeur 16777215.
Note : 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 aussi maximumSize et maximumWidth.
maximumSize : QSize
Cette propriété indique la taille maximale du widget en pixels
Le widget ne peut pas être redimensionné à une taille supérieure à la taille maximale du widget.
Par défaut, cette propriété contient une taille dans laquelle la largeur et la hauteur ont toutes deux des valeurs de 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 aussi maximumWidth, maximumHeight, minimumSize, et sizeIncrement.
maximumWidth : int
Cette propriété indique la largeur maximale du widget en pixels
Cette propriété correspond à la largeur détenue par la propriété maximumSize.
Par défaut, cette propriété contient la valeur 16777215.
Note : 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 aussi maximumSize et maximumHeight.
[read-only] minimized : bool
Cette propriété indique si ce widget est minimisé (iconifié)
Cette propriété ne concerne que les fenêtres.
Par défaut, cette propriété est false.
Fonctions d'accès :
| bool | isMinimized() const |
Voir également showMinimized(), visible, show(), hide(), showNormal() et maximized.
minimumHeight : int
Cette propriété indique la hauteur minimale du widget en pixels
Cette propriété correspond à la hauteur détenue 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 aussi 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 à la taille minimale du widget. La taille du widget est forcée à la taille minimale si la taille actuelle est plus petite.
La taille minimale définie par cette fonction remplace la taille minimale définie par QLayout. Pour désactiver la taille minimale, utilisez une valeur de QSize(0, 0).
Par défaut, cette propriété contient une taille dont la largeur et la hauteur sont nulles.
Fonctions d'accès :
| QSize | minimumSize() const |
| void | setMinimumSize(const QSize &) |
| void | setMinimumSize(int minw, int minh) |
Voir aussi minimumWidth, minimumHeight, maximumSize, et sizeIncrement.
[read-only] minimumSizeHint : QSize
Cette propriété indique la taille minimale recommandée pour le widget
Si la valeur de cette propriété est 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'y a pas de disposition pour ce widget, et renvoie la taille minimale de la disposition 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 à l'indication de taille minimale à moins que minimumSize() ne soit défini ou que la politique de taille ne soit définie sur QSizePolicy::Ignore. Si minimumSize() est défini, l'indice de taille minimale sera ignoré.
Fonctions d'accès :
| virtual QSize | minimumSizeHint() const |
Voir aussi QSize::isValid(), resize(), setMinimumSize() et sizePolicy().
minimumWidth : int
Cette propriété indique la largeur minimale du widget en pixels
Cette propriété correspond à la largeur détenue 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 aussi minimumSize et minimumHeight.
[read-only] modal : bool
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 données.
Par défaut, cette propriété est 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 si 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 normal (non maximisé ou plein écran) au niveau supérieur
Si le widget est déjà dans cet état, la géométrie normale reflétera l'actuel geometry() 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 est disponible comme moyen de garantir que les widgets personnalisés peuvent maintenir la cohérence avec l'aspect et la convivialité de la plateforme native. Il est fréquent que des plateformes ou des styles différents aient des 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 la palette pour le 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 du système. QApplication maintient une palette système/thème qui sert de valeur par défaut pour tous les widgets. Il peut également y avoir des palettes spéciales par défaut pour certains types de widgets (par exemple, sous Windows Vista, toutes les classes qui dérivent de QMenuBar ont une palette spéciale par défaut). Vous pouvez également définir vous-même des palettes par défaut pour les widgets en passant une palette personnalisée et le nom d'un widget à QApplication::setPalette(). Enfin, le style a toujours la possibilité de polir la palette au fur et à mesure qu'elle est attribuée (voir QStyle::polish()).
QWidget propage les rôles explicites de la palette du parent à l'enfant. Si vous assignez une brosse ou une couleur à un rôle spécifique sur une palette et que vous assignez cette palette à un widget, ce rôle se propagera à tous les enfants du widget, en remplaçant toutes 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 par le système d'exploitation est similaire à la propagation des polices.
Le style actuel, qui est utilisé pour rendre le contenu de tous les widgets standards de Qt Widgets, est libre de choisir les couleurs et les brosses de la palette du widget, ou, dans certains cas, d'ignorer la palette (partiellement, ou complètement). En particulier, certains styles comme le style GTK, le style Mac et le style Windows Vista dépendent d'API tierces pour rendre le contenu des widgets, et ces styles ne suivent généralement pas la palette. Pour cette raison, l'attribution de rôles à la palette d'un widget ne garantit pas la modification de l'apparence du widget. Au lieu de cela, vous pouvez choisir d'appliquer une feuille de style.
Attention : N'utilisez pas cette fonction en conjonction avec les feuilles de style Qt. Lors de l'utilisation de feuilles de style, la palette d'un widget peut être personnalisée à l'aide des fonctions "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 aussi QGuiApplication::palette(), QWidget::font(), et les feuilles de style Qt.
pos : QPoint
Cette propriété indique la position du widget dans son widget parent
Si le widget est une fenêtre, la position est celle du widget sur le bureau, y compris son cadre.
Lorsque la position est modifiée, le widget, s'il est visible, reçoit immédiatement un événement de déplacement (moveEvent()). Si le widget n'est pas actuellement visible, 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.
Attention : Appeler move() ou setGeometry() à l'intérieur de moveEvent() peut conduire à une récursion infinie.
Voir la documentation sur la géométrie des fenêtres pour une vue d'ensemble des problèmes de géométrie avec les fenêtres.
Remarque : tous les systèmes de fenêtrage ne permettent pas de définir ou d'interroger la position des fenêtres de premier niveau. Sur un tel système, le déplacement programmatique des fenêtres peut n'avoir aucun effet, et des valeurs artificielles peuvent être renvoyées pour les positions actuelles, comme 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 égale à QRect(0, 0, width(), height()).
Voir la documentation sur la géométrie des fenêtres pour une vue d'ensemble des problèmes de géométrie avec les 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é indique la taille du widget sans tenir compte du 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 actuellement visible, 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.
Attention : Appeler resize() ou setGeometry() à l'intérieur de resizeEvent() peut conduire à une récursion infinie.
Remarque : si la taille est fixée à QSize(0, 0), le widget n'apparaîtra pas à l'écran. Ceci s'applique également aux fenêtres.
Fonctions d'accès :
| QSize | size() const |
| void | resize(int w, int h) |
| void | resize(const QSize &) |
Voir aussi pos, geometry, minimumSize, maximumSize, resizeEvent(), et adjustSize().
[read-only] sizeHint : QSize
Cette propriété indique la taille recommandée pour le widget
Si la valeur de cette propriété est une taille non valide, aucune taille n'est recommandée.
L'implémentation par défaut de sizeHint() renvoie une taille invalide s'il n'y a pas de disposition pour ce widget, et renvoie la taille préférée de la disposition dans le cas contraire.
Fonctions d'accès :
| virtual QSize | sizeHint() const |
Voir aussi QSize::isValid(), minimumSizeHint(), sizePolicy(), setMinimumSize() et updateGeometry().
sizeIncrement : QSize
Cette propriété contient l'incrément de taille du widget
Lorsque l'utilisateur redimensionne la fenêtre, la taille se déplace par pas de sizeIncrement().width() pixels horizontalement et sizeIncrement.height() pixels verticalement, avec baseSize() comme base. La taille préférée des widgets est celle des entiers non négatifs i et j :
width = baseSize().width() + i * sizeIncrement().width(); height = baseSize().height() + j * sizeIncrement().height();
Notez que si vous pouvez 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 dont la largeur et la hauteur sont nulles.
Attention : 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 aussi size, minimumSize, et maximumSize.
sizePolicy : QSizePolicy
Cette propriété définit le comportement par défaut du widget en matière de mise en page
S'il existe un site QLayout qui gère les enfants de ce widget, la politique de taille spécifiée par cette disposition est utilisée. S'il n'existe pas de 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 librement redimensionné, mais qu'il préfère la taille renvoyée par sizeHint(). Les widgets de type bouton définissent la politique de taille de manière à spécifier qu'ils peuvent s'étirer horizontalement, mais qu'ils sont fixes verticalement. Il en va de même pour les contrôles d'édition de ligne (tels que QLineEdit, QSpinBox ou QComboBox) et d'autres widgets orientés horizontalement (tels que QProgressBar). QToolButton Les fenêtres d'affichage sont normalement carrées, de sorte qu'elles permettent une croissance dans les deux sens. Les widgets qui prennent en charge différentes directions (tels que QSlider, QScrollBar ou QHeader) spécifient l'étirement dans la direction respective uniquement. Les widgets qui peuvent fournir des barres de défilement (généralement des sous-classes de QScrollArea) ont tendance à spécifier qu'ils peuvent utiliser de l'espace supplémentaire et qu'ils peuvent se contenter de moins que 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 le conseil d'état 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 aussi 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.
Depuis Qt 4.5, les feuilles de style Qt supportent entièrement macOS.
Attention : Les feuilles de style Qt ne sont actuellement pas prises en charge pour les sous-classes personnalisées de QStyle. Nous prévoyons d'y remédier dans une prochaine version.
Fonctions d'accès :
| QString | styleSheet() const |
| void | setStyleSheet(const QString &styleSheet) |
Voir aussi setStyle(), QApplication::styleSheet, et les feuilles de style Qt.
tabletTracking : bool
Cette propriété indique si le suivi de la tablette est activé pour le widget
Si le suivi de la tablette est désactivé (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 la tablette ou qu'au moins un bouton du stylet est enfoncé, alors 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 lorsqu'il se trouve à proximité. Cela permet de contrôler la position ainsi que les propriétés auxiliaires telles que la rotation et l'inclinaison, et de fournir un retour d'information dans l'interface utilisateur.
Fonctions d'accès :
| bool | hasTabletTracking() const |
| void | setTabletTracking(bool enable) |
Voir aussi tabletEvent().
toolTip : QString
Cette propriété contient l'infobulle du widget
Notez que, par défaut, les infobulles ne sont affichées que pour les widgets qui sont des 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 contenant l'info-bulle.
Si vous souhaitez contrôler le comportement d'une infobulle, vous pouvez intercepter la fonction event() et attraper l'événement QEvent::ToolTip (par exemple, si vous souhaitez personnaliser la zone pour laquelle l'infobulle doit être affichée).
Par défaut, cette propriété contient une chaîne vide.
Fonctions d'accès :
| QString | toolTip() const |
| void | setToolTip(const QString &) |
Voir aussi QToolTip, statusTip, et whatsThis.
toolTipDuration : int
Cette propriété contient la durée 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é indique si les mises à jour sont activées
Un widget dont les mises à jour sont activées reçoit des événements de peinture et a un arrière-plan système ; un widget désactivé n'en a pas. Cela implique également que l'appel à update() et repaint() n'a aucun effet si les mises à jour sont désactivées.
Par défaut, cette propriété vaut true.
setUpdatesEnabled() est normalement utilisé pour désactiver les mises à jour pendant une courte période, par exemple pour éviter le scintillement de l'écran lors de changements importants. Dans Qt Widgets, les widgets ne génèrent normalement pas de scintillement de l'écran, mais sur X11, le serveur peut effacer des régions de l'écran lorsque des widgets sont cachés avant qu'ils ne puissent être remplacés par d'autres widgets. La désactivation des mises à jour résout 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 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 à 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 Widgets 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 la taille du widget à une valeur par défaut utile en utilisant adjustSize().
L'appel à setVisible(false) ou hide() cache explicitement un widget. Un widget explicitement caché 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 statut de visibilité change. Entre un événement de masquage et un événement d'affichage, il n'est pas nécessaire de gaspiller des cycles de l'unité centrale pour préparer ou afficher des informations à l'utilisateur. Une application vidéo, par exemple, peut simplement arrêter de générer de nouvelles images.
Un widget qui se trouve être masqué par d'autres fenêtres à l'écran est considéré comme visible. Il en va de même pour les fenêtres iconifiées et les fenêtres qui existent sur un autre bureau virtuel (sur les plates-formes qui supportent ce concept). 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êtres, par exemple un événement de masquage spontané lorsque l'utilisateur réduit la fenêtre, et un événement d'affichage spontané lorsque la fenêtre est à nouveau restaurée.
Il est rare que vous ayez à 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 procéder à une initialisation différée, utilisez l'événement Polish fourni à 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 du widget What's This.
Par défaut, cette propriété contient une chaîne vide.
Fonctions d'accès :
| QString | whatsThis() const |
| void | setWhatsThis(const QString &) |
Voir aussi QWhatsThis, QWidget::toolTip, et QWidget::statusTip.
[read-only] width : int
Cette propriété indique la largeur du widget, à l'exclusion de tout cadre de fenêtre
Voir la documentation sur la géométrie des fenêtres pour une vue d'ensemble des problèmes de géométrie avec les fenêtres.
Remarque : n'utilisez pas cette fonction pour déterminer la largeur d'un écran sur un bureau à plusieurs écrans. Voir QScreen pour plus de détails.
Par défaut, cette propriété contient une valeur qui dépend de la plateforme 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 de 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 XML définit le titre de la fenêtre au nom de fichier du chemin d'accès spécifié, obtenu à l'aide de QFileInfo::fileName().
Si le titre de la fenêtre est défini à un moment donné, le titre de la fenêtre est prioritaire et s'affiche à la place de la chaîne du chemin d'accès au fichier.
De plus, sous macOS, cette fonction présente l'avantage supplémentaire de définir l'icône proxy de la fenêtre, en supposant 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 drapeaux de fenêtre sont une combinaison d'un type (par exemple Qt::Dialog) et de zéro ou plusieurs indications sur le système de fenêtres (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 Qt::Widget ou Qt::SubWindow, il est placé à la position (0, 0) par rapport à son widget parent.
Remarque : cette fonction appelle setParent() lorsqu'elle modifie les drapeaux d'une fenêtre, ce qui a pour effet de masquer le widget. Vous devez appeler show() pour rendre le widget visible à nouveau.
Fonctions d'accès :
| Qt::WindowFlags | windowFlags() const |
| void | setWindowFlags(Qt::WindowFlags type) |
Voir également windowType(), setWindowFlag() et Window Flags Exemple.
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 : sur macOS, les icônes de fenêtre représentent le document actif et ne seront pas affichées à moins qu'un chemin d'accès au fichier n'ait également été défini à l'aide de setWindowFilePath.
Fonctions d'accès :
| QIcon | windowIcon() const |
| void | setWindowIcon(const QIcon &icon) |
Signal du notificateur :
| void | windowIconChanged(const QIcon &icon) |
Voir aussi windowTitle et setWindowFilePath.
windowModality : Qt::WindowModality
Cette propriété détermine 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 des autres fenêtres de recevoir des données. La valeur de cette propriété détermine quelles fenêtres sont bloquées lorsque le widget est visible. Modifier cette propriété lorsque la fenêtre est visible n'a aucun effet ; vous devez d'abord hide() le widget, puis show() à nouveau.
Par défaut, la valeur de cette propriété est 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 a subi des modifications non enregistrées
Une fenêtre modifiée est une fenêtre dont le contenu a changé mais n'a pas été enregistré sur le disque. Ce drapeau aura des effets différents selon la plateforme. Sur macOS, le bouton de fermeture aura une apparence modifiée ; sur les autres plateformes, le titre de la fenêtre comportera un '*' (astérisque).
Le titre de la fenêtre doit contenir un espace "[*]", qui indique l'endroit 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 défini comme modifié, tous ses ancêtres le seront également. Cependant, si vous appelez setWindowModified(false) sur un widget, cela ne se propagera pas à son parent car d'autres enfants du parent peuvent 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 d'opacité valide est comprise entre 1,0 (complètement opaque) et 0,0 (complètement transparent).
Par défaut, la valeur de cette propriété est 1.0.
Cette fonctionnalité est disponible sur les plateformes Embedded Linux, macOS, Windows et X11 qui prennent en charge l'extension Composite.
Note : Sur X11, vous devez avoir un gestionnaire composite 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.
Attention : Changer cette propriété d'opaque à transparente peut générer un événement de peinture qui doit être traité avant que la fenêtre ne soit affichée correctement. Cela concerne principalement l'utilisation de QScreen::grabWindow(). Notez également que les fenêtres semi-transparentes se mettent à jour et se redimensionnent beaucoup 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 (caption)
Cette propriété n'a de sens que pour les widgets de premier niveau, tels que les fenêtres et les boîtes de dialogue. Si aucune légende n'a été définie, le titre est basé sur la propriété windowFilePath. Si aucune de ces propriétés n'est définie, le titre est 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'endroit 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 propriété windowModified est false (par défaut), l'espace réservé est simplement supprimé.
Sur certaines plates-formes de bureau (y compris 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, de sorte qu'elle est montrée à l'utilisateur, mais ne fait pas partie de la chaîne windowTitle.
Fonctions d'accès :
| QString | windowTitle() const |
| void | setWindowTitle(const QString &) |
Notifier signal :
| void | windowTitleChanged(const QString &title) |
Voir aussi windowIcon, windowModified, et windowFilePath.
[read-only] x : int
Cette propriété contient la coordonnée x du widget par rapport à son parent, y compris tout cadre de fenêtre
Voir la documentation sur la géométrie des fenêtres pour une vue d'ensemble des problèmes de géométrie avec les fenêtres.
Par défaut, cette propriété a une valeur de 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, y compris tout cadre de fenêtre
Voir la documentation sur la géométrie des fenêtres pour une vue d'ensemble des problèmes de géométrie avec les fenêtres.
Par défaut, cette propriété a une valeur de 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())
Construit un widget qui est un enfant de parent, avec les drapeaux de widget fixés à 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 drapeaux de widget, f, est normalement 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 bit à bit de n'importe lequel des arguments window flags.
Si vous ajoutez un widget enfant à un widget déjà visible, vous devez explicitement afficher l'enfant pour le rendre visible.
Notez que la version X11 de Qt peut ne pas être en mesure de fournir toutes les combinaisons de drapeaux de style sur tous les systèmes. En effet, sous X11, Qt ne peut que demander au gestionnaire de fenêtres, et ce dernier peut outrepasser les paramètres de l'application. Sous Windows, Qt peut définir tous les drapeaux que vous souhaitez.
Voir aussi windowFlags.
[virtual noexcept] QWidget::~QWidget()
Détruit le widget.
Tous les enfants de ce widget sont d'abord supprimés. L'application se termine si ce widget est le widget principal.
[virtual protected] void QWidget::actionEvent(QActionEvent *event)
Ce gestionnaire d'événements est appelé avec l'adresse event chaque fois que les actions du widget sont modifiées.
Voir aussi addAction(), insertAction(), removeAction(), actions() et QActionEvent.
QList<QAction *> QWidget::actions() const
Renvoie la liste (éventuellement vide) des actions de ce widget.
Voir aussi contextMenuPolicy, insertAction(), et removeAction().
void QWidget::activateWindow()
Définit le widget de niveau supérieur contenant ce widget comme étant la fenêtre active.
Une fenêtre active est une fenêtre de premier niveau visible qui a le focus sur la saisie au clavier.
Cette fonction effectue la même opération qu'un clic de souris sur la barre de titre d'une fenêtre de premier niveau. Sous X11, le résultat dépend du gestionnaire de fenêtres. Si vous voulez vous assurer que la fenêtre est empilée au sommet, vous devez également appeler raise(). Notez que la fenêtre doit être visible, sinon activateWindow() n'a aucun effet.
Sous Windows, si vous appelez cette fonction alors que l'application n'est pas encore active, elle n'en fera pas la fenêtre active. Elle changera la couleur de l'entrée de la barre des tâches pour indiquer que la fenêtre a changé d'une manière ou d'une autre. En effet, Microsoft ne permet pas à une application d'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 ont une liste d'actions QAction. Cependant, ils peuvent être représentés graphiquement de différentes manières. L'utilisation par défaut de la liste QAction (telle que renvoyée par actions()) consiste à créer un contexte QMenu.
Un QWidget ne doit avoir qu'une seule action de chaque type et l'ajout d'une action qu'il possède déjà n'entraînera pas la présence de la 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 QString &text, const QKeySequence &shortcut)
[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text)
[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut)
Ces fonctions de commodité créent 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 et la renvoient.
QWidget prend la propriété de l'action retournée QAction.
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 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, 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 de commodité 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 par 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 la propriété de l'action retournée QAction.
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 de commodité 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 la propriété de l'action retournée QAction.
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 aussi removeAction(), QMenu, et addAction().
void QWidget::adjustSize()
Ajuste la taille du widget en fonction de son contenu.
Cette fonction utilise sizeHint() s'il est valide, c'est-à-dire si la largeur et la hauteur de l'indice de taille sont >= 0. Sinon, elle fixe la taille au rectangle des enfants qui couvre 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 l'adresse sizeHint() est inférieure à (200, 100) et que la politique de taille est expanding, la fenêtre aura une taille minimale de (200, 100). La taille maximale d'une fenêtre est égale à 2/3 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 la brosse du widget palette qui est utilisée pour rendre l'arrière-plan.
Si aucun rôle d'arrière-plan explicite n'est 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'adresse QBackingStore dans laquelle ce widget sera dessiné.
[virtual protected] void QWidget::changeEvent(QEvent *event)
Ce gestionnaire d'événement peut être réimplémenté pour gérer les changements d'état.
L'état modifié dans cet événement peut être récupéré à l'aide de l'adresse event fournie.
Les événements de changement sont les suivants : 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 à 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 spécifié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 du 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 du widget.
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.8.
void QWidget::clearFocus()
Prend le focus de l'entrée clavier du widget.
Si le widget a un focus actif, un message focus out event est envoyé à ce widget pour lui indiquer qu'il a perdu le focus.
Ce widget doit activer le réglage du focus pour obtenir le focus de l'entrée clavier, c'est-à-dire qu'il doit appeler setFocusPolicy().
Voir aussi hasFocus(), setFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy() et QApplication::focusWidget().
void QWidget::clearMask()
Supprime tout masque défini par setMask().
Voir aussi setMask().
[slot] bool QWidget::close()
Ferme ce widget. Retourne true si le widget a été fermé, sinon retourne false.
Il envoie d'abord au widget un message QCloseEvent. 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 possède l'indicateur Qt::WA_DeleteOnClose, il est également supprimé. Un événement de fermeture est délivré au widget, qu'il soit visible ou non.
Le signal QGuiApplication::lastWindowClosed() est émis lorsque la dernière fenêtre primaire visible (c'est-à-dire une fenêtre sans parent) dont l'attribut Qt::WA_QuitOnClose est défini est fermée. Par défaut, cet attribut est défini pour tous les widgets, à l'exception des fenêtres transitoires telles que les écrans d'accueil, 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'adresse event lorsque Qt Widgets reçoit une demande de fermeture de fenêtre pour un widget de niveau supérieur de la part du système de fenêtres.
Par défaut, l'événement est accepté et le widget est fermé. Vous pouvez réimplémenter cette fonction pour modifier la façon 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() sur tous les événements.
Les applications de la 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é sauvegardé et demander la permission avant de fermer.
Voir également event(), hide(), close() et QCloseEvent.
QMargins QWidget::contentsMargins() const
La fonction contentsMargins renvoie les marges du contenu du widget.
Voir aussi setContentsMargins() et contentsRect().
QRect QWidget::contentsRect() const
Renvoie la zone située à l'intérieur des marges du widget.
Voir aussi setContentsMargins() et contentsMargins().
[virtual protected] void QWidget::contextMenuEvent(QContextMenuEvent *event)
Ce gestionnaire d'événement, pour l'événement event, peut être réimplémenté dans une sous-classe pour recevoir les événements du menu contextuel du widget.
Le gestionnaire est appelé lorsque l'adresse contextMenuPolicy du widget est Qt::DefaultContextMenu.
L'implémentation par défaut ignore l'événement contextuel. Voir la documentation de QContextMenuEvent pour plus de détails.
Voir aussi event(), QContextMenuEvent, et customContextMenuRequested().
[protected] void QWidget::create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)
Crée une nouvelle fenêtre widget.
Les paramètres window, initializeWindow, et destroyOldWindow sont ignorés dans Qt 5. Veuillez utiliser QWindow::fromWinId() pour créer une QWindow enveloppant une fenêtre étrangère et la passer à QWidget::createWindowContainer() à la place.
Voir aussi createWindowContainer() et QWindow::fromWinId().
[static] QWidget *QWidget::createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
Crée une fenêtre QWidget qui permet 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 drapeaux de fenêtre flags.
Une fois la fenêtre intégrée dans le conteneur, ce dernier contrôlera la géométrie et la visibilité de la fenêtre. Il n'est pas recommandé d'appeler explicitement QWindow::setGeometry(), QWindow::show() ou QWindow::hide() sur une fenêtre intégrée.
Le conteneur devient propriétaire de window. La fenêtre peut être supprimée du conteneur de fenêtre par un appel à QWindow::setParent().
Le conteneur de fenêtre est attaché en tant que fenêtre enfant native à la fenêtre de niveau supérieur dont il est l'enfant. Lorsqu'un conteneur de fenêtre est utilisé comme enfant d'un QAbstractScrollArea ou d'un QMdiArea, il crée un native window pour chaque widget de sa chaîne parentale afin de permettre un empilement et un écrêtage corrects dans ce cas d'utilisation. La création d'une fenêtre native pour le conteneur de fenêtre permet également un empilement et un écrêtage corrects. Cette opération doit être effectuée avant d'afficher le conteneur de fenêtres. Les applications comportant de nombreuses fenêtres enfant natives peuvent souffrir de 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'empile sur la hiérarchie des widgets sous la forme d'une boîte opaque. L'ordre d'empilement de plusieurs instances de conteneurs de fenêtres qui se chevauchent n'est pas défini.
- Intégration du rendu : le conteneur de fenêtre n'interagit pas avec QGraphicsProxyWidget, QWidget::render() ou une fonctionnalité similaire.
- Gestion du focus ; Il est possible de laisser l'instance de conteneur de fenêtre avoir n'importe quelle politique de focus et elle déléguera le focus à la fenêtre via un appel à QWindow::requestActivate(). Cependant, le retour à la chaîne de focalisation normale à partir de l'instance QWindow dépendra de l'implémentation de l'instance QWindow elle-même. De plus, la question de savoir si QWindow::requestActivate() donne effectivement le focus à la fenêtre dépend de la plate-forme.
Depuis la version 6.8, en cas d'intégration d'une fenêtre basée sur Qt Quick, les pressions sur les tabulations permettent d'entrer et de sortir de la fenêtre QML intégrée, ce qui permet de déplacer le focus vers l'objet focalisable suivant ou précédent dans la chaîne de conteneurs de la fenêtre.
- L'utilisation de nombreuses instances de conteneurs de fenêtres dans une application basée sur QWidget peut nuire considérablement aux performances globales de l'application.
- Depuis la version 6.7, si window appartient à un widget (c'est-à-dire que window a été reçu en appelant windowHandle()), aucun conteneur ne sera créé. Au lieu de cela, cette fonction renverra le widget lui-même, après avoir été réparti sur parent. Étant donné qu'aucun conteneur ne sera créé, flags sera ignoré. En d'autres termes, si window appartient à un widget, envisagez de répartir ce widget sur parent au lieu d'utiliser cette fonction.
[signal] void QWidget::customContextMenuRequested(const QPoint &pos)
Ce signal est émis lorsque l'adresse contextMenuPolicy du widget est Qt::CustomContextMenu et que l'utilisateur a demandé un menu contextuel sur le widget. La position pos est la position de l'événement de menu contextuel que le widget reçoit. Normalement, il s'agit des coordonnées du widget. L'exception à cette règle est QAbstractScrollArea et ses sous-classes qui mappent l'événement de menu contextuel aux coordonnées de viewport().
Voir également mapToGlobal(), QMenu et contextMenuPolicy.
[protected] void QWidget::destroy(bool destroyWindow = true, bool destroySubWindows = true)
Libère les ressources système de la fenêtre. Détruit la fenêtre du widget si destroyWindow est vrai.
destroy() s'appelle récursivement pour tous les widgets enfants, en passant destroySubWindows pour le paramètre destroyWindow. Pour mieux contrôler la destruction des sous-fenêtres, il est possible de les détruire sélectivement en premier.
Cette fonction est généralement appelée à partir du destructeur QWidget.
[virtual protected] void QWidget::dragEnterEvent(QDragEnterEvent *event)
Ce gestionnaire d'événement est appelé lorsqu'un déplacement est en cours et que la souris entre dans ce widget. L'événement est transmis dans le paramètre event.
Si l'événement est ignoré, le widget ne recevra pas de drag move events.
Voir la documentation sur le glisser-déposer pour une vue d'ensemble de la manière de mettre en œuvre 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 déplacement est en cours et que la souris quitte le widget. L'événement est transmis dans le paramètre event.
Voir la documentation sur le glisser-déposer pour une vue d'ensemble de la manière de mettre en œuvre le glisser-déposer dans votre application.
Voir également QDrag et QDragLeaveEvent.
[virtual protected] void QWidget::dragMoveEvent(QDragMoveEvent *event)
Ce gestionnaire d'événement est appelé si un déplacement est en cours et si l'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 appuyée sur le clavier alors que ce widget est au centre de l'attention. L'événement est transmis dans le paramètre event.
Voir la documentation sur le glisser-déposer pour une vue d'ensemble de la manière de mettre en œuvre 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 le drag est déposé sur ce widget. L'événement est transmis dans le paramètre event.
Voir la documentation sur le glisser-déposer pour une vue d'ensemble de la manière de mettre en œuvre le glisser-déposer dans votre application.
Voir également QDrag et QDropEvent.
WId QWidget::effectiveWinId() const
Renvoie l'identifiant effectif du système de fenêtres du widget, c'est-à-dire l'identifiant du système de fenêtres du parent natif.
Si le widget est natif, cette fonction renvoie l'identifiant du widget natif. Sinon, elle renvoie l'identifiant de 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 à l'exécution.
Voir aussi nativeParentWidget().
void QWidget::ensurePolished() const
S'assure que le widget et ses enfants ont été polis par QStyle (c'est-à-dire qu'ils ont une police et une palette correctes).
QWidget appelle cette fonction après que le widget a été entièrement construit, mais avant qu'il ne soit montré pour la première fois. Vous pouvez appeler cette fonction si vous voulez vous assurer que le widget est poli avant d'effectuer une opération, par exemple, la taille de police correcte peut être nécessaire dans la réimplémentation du widget sizeHint(). Notez que cette fonction est appelée à partir de l'implémentation par défaut de sizeHint().
Le polissage est utile pour l'initialisation finale qui doit avoir lieu après que tous les constructeurs (des classes de base et des sous-classes) ont été appelés.
Si vous avez besoin de modifier certains paramètres lorsqu'un widget est poli, réimplémentez event() et gérez le type d'événement QEvent::Polish.
Remarque : la fonction est déclarée const pour pouvoir être appelée à partir d'autres fonctions constantes (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 pour recevoir les événements d'entrée dans le widget qui sont transmis dans le paramètre event.
Un événement est envoyé au widget lorsque le curseur de la souris entre dans le widget.
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 l'événement event. Vous pouvez réimplémenter cette fonction dans une sous-classe, mais nous vous recommandons d'utiliser plutôt l'un des gestionnaires d'événements spécialisés.
Les événements de pression et de relâchement des touches sont traités différemment des autres événements. event() vérifie la présence de Tab et de Shift+Tab et tente de déplacer le focus de manière appropriée. S'il n'y a pas de widget vers lequel déplacer le focus (ou si la touche pressée n'est pas Tab ou Shift+Tab), event() appelle keyPressEvent().
La gestion des événements liés à la souris et à la tablette est également légèrement particulière : ce n'est que lorsque le widget est enabled que event() appelle les gestionnaires spécialisés tels que mousePressEvent() ; dans le cas contraire, il rejette 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 au widget parent s'arrête.
Voir aussi 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 sur le widget avec l'identifiant de la fenêtre/le manche id.
Le type d'identifiant de fenêtre dépend du système de fenêtre sous-jacent, voir qwindowdefs.h pour la définition réelle. S'il n'y a pas de widget avec cet identifiant, nullptr est renvoyé.
[virtual protected] void QWidget::focusInEvent(QFocusEvent *event)
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de mise au point du clavier (mise au point reçue) pour le widget. L'événement est transmis dans le paramètre event
Un widget doit normalement appeler setFocusPolicy() à autre chose que Qt::NoFocus pour recevoir les événements de mise au point. (Le programmeur d'application peut appeler setFocus() sur n'importe quel widget, même ceux qui n'acceptent pas normalement le focus).
L'implémentation par défaut met à jour le widget (sauf pour les fenêtres qui ne spécifient pas de focusPolicy()).
Voir également focusOutEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event() et QFocusEvent.
[protected] bool QWidget::focusNextChild()
Trouve un nouveau widget auquel donner le focus clavier, comme approprié pour Tab, et renvoie true s'il trouve un nouveau widget, ou false s'il n'en trouve pas.
Voir aussi focusPreviousChild().
[virtual protected] bool QWidget::focusNextPrevChild(bool next)
Recherche un nouveau widget auquel donner le focus clavier, comme approprié pour Tab et Shift+Tab, et renvoie true s'il trouve un nouveau widget, ou false s'il ne le trouve pas.
Si next est vrai, cette fonction effectue une recherche vers l'avant, si next est faux, elle effectue une recherche vers l'arrière.
Parfois, vous voudrez réimplémenter cette fonction. Par exemple, un navigateur web peut la réimplémenter pour déplacer son "lien actif actuel" vers l'avant ou vers l'arrière, et appeler focusNextPrevChild() uniquement 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 obtenez ainsi le contrôle du déplacement 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 pour recevoir les événements de focus clavier (focus perdu) pour le widget. Les événements sont transmis dans le paramètre event.
Un widget doit normalement appeler setFocusPolicy() à autre chose que Qt::NoFocus pour recevoir les événements de focus. (Le programmeur d'application peut appeler setFocus() sur n'importe quel widget, même ceux qui n'acceptent pas normalement le focus).
L'implémentation par défaut met à jour le widget (sauf pour les fenêtres qui ne spécifient pas de focusPolicy()).
Voir également focusInEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event() et QFocusEvent.
[protected] bool QWidget::focusPreviousChild()
Trouve un nouveau widget auquel donner le focus clavier, comme approprié pour Shift+Tab, et renvoie true s'il trouve un nouveau widget, ou false s'il n'en trouve pas.
Voir aussi 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 setFocus a été appelé. Pour les widgets de niveau supérieur, il s'agit du widget qui obtiendra le focus au cas où cette fenêtre serait activée
Ce n'est pas la même chose que QApplication::focusWidget(), qui renvoie le widget de focus dans la fenêtre actuellement active.
QFontInfo QWidget::fontInfo() const
Renvoie les informations sur la police actuelle du widget. Équivalent à QFontInfo(widget->font()).
Voir aussi font(), fontMetrics(), et setFont().
QFontMetrics QWidget::fontMetrics() const
Renvoie les métriques de la police actuelle du widget. Équivalent à QFontMetrics(widget->font()).
Voir aussi 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 du widget palette qui est utilisée pour dessiner le premier plan.
Si aucun rôle d'avant-plan explicite n'est 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)))
Rend le widget dans une pixmap limitée par l'adresse rectangle. Si le widget a des enfants, ils sont également peints dans les positions appropriées.
Si un rectangle de taille non valide est spécifié (par défaut), le widget entier est peint.
Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.
Voir également render() et QPixmap.
void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags())
Abonne le widget à une gesture donnée avec une flags spécifique.
Voir également ungrabGesture() et QGestureEvent.
void QWidget::grabKeyboard()
Saisit les données du clavier.
Ce widget reçoit tous les événements clavier jusqu'à ce que releaseKeyboard() soit appelé ; les autres widgets ne reçoivent aucun événement clavier. Les événements souris ne sont pas affectés. Utilisez grabMouse() si vous voulez les récupérer.
Le widget focus n'est pas affecté, sauf qu'il ne reçoit pas d'événements clavier. setFocus() déplace le focus comme d'habitude, mais le nouveau widget de focus ne reçoit des événements clavier qu'après l'appel de releaseKeyboard().
Si un autre widget est en train de saisir des données au clavier, la saisie de ce widget est relâchée en premier.
Voir également releaseKeyboard(), grabMouse(), releaseMouse() et focusWidget().
void QWidget::grabMouse()
Saisit l'entrée de la souris.
Ce widget reçoit tous les événements de la souris jusqu'à ce que releaseMouse() soit appelé ; les autres widgets ne reçoivent aucun événement de la souris. Les événements clavier ne sont pas affectés. Utilisez grabKeyboard() si vous voulez les récupérer.
Attention : Les bogues dans les applications de capture de 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 pendant le débogage.
Il est rarement nécessaire d'attraper la souris lorsque l'on utilise Qt, car Qt l'attrape et la relâche judicieusement. En particulier, Qt saisit la souris lorsqu'un bouton est enfoncé et la garde jusqu'à ce que le dernier bouton soit relâché.
Remarque : seuls les widgets visibles peuvent saisir la souris. Si isVisible() renvoie false pour un widget, ce widget ne peut pas appeler grabMouse().
Remarque : sous Windows, grabMouse() ne fonctionne que si la souris se trouve à l'intérieur d'une fenêtre appartenant au processus. Sous macOS, grabMouse() ne fonctionne que lorsque la souris se trouve à l'intérieur du cadre de ce widget.
Voir aussi releaseMouse(), grabKeyboard() et releaseKeyboard().
void QWidget::grabMouse(const QCursor &cursor)
Saisit l'entrée de la souris et modifie la forme du curseur.
Le curseur prendra la forme cursor (tant que le focus de la souris est saisi) et ce widget sera le seul à recevoir les événements de la souris jusqu'à ce que releaseMouse() soit appelé().
Attention : La saisie de la souris peut bloquer le terminal.
Note : Voir la note dans QWidget::grabMouse().
Cette fonction surcharge QWidget::grabMouse().
Voir aussi 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 key donnée dans la séquence context donnée. Si context est Qt::ApplicationShortcut, le raccourci s'applique à l'ensemble de l'application. 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é saisie par plusieurs widgets, lorsque la séquence key se produit, un événement QEvent::Shortcut est envoyé à tous les widgets auxquels il s'applique dans un ordre non déterministe, mais avec le drapeau "ambigu" fixé à vrai.
Attention : Vous ne devriez normalement pas avoir besoin d'utiliser cette fonction ; créez plutôt QActions avec les séquences de touches de raccourci dont vous avez besoin (si vous voulez aussi des options de menu et des boutons de barre d'outils équivalents), ou créez QShortcuts si vous n'avez besoin que de séquences de touches. QAction et QShortcut gèrent tous les filtrages d'événements pour vous et fournissent des signaux qui sont déclenchés lorsque l'utilisateur déclenche la séquence de touches, et sont donc beaucoup plus faciles à utiliser que cette fonction de bas niveau.
Voir aussi releaseShortcut() et setShortcutEnabled().
QGraphicsEffect *QWidget::graphicsEffect() const
La fonction graphicsEffect renvoie un pointeur sur l'effet graphique du widget.
Si le widget n'a pas d'effet graphique, nullptr est renvoyé.
Voir également setGraphicsEffect().
QGraphicsProxyWidget *QWidget::graphicsProxyWidget() const
Renvoie le widget proxy pour le widget intégré correspondant dans une vue graphique ; sinon, renvoie nullptr.
Voir également QGraphicsProxyWidget::createProxyForChildWidget() et QGraphicsScene::addWidget().
bool QWidget::hasEditFocus() const
Renvoie true si ce widget a actuellement le focus d'édition, sinon false.
Cette fonctionnalité n'est disponible que dans Qt pour Linux embarqué.
Voir aussi setEditFocus() et QApplication::navigationMode().
[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 pour ce widget, compte tenu de la largeur w.
Si ce widget a une disposition, l'implémentation par défaut renvoie la hauteur préférée de la disposition. S'il n'y a pas de disposition, 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()
Cache le widget. Cette fonction est équivalente à setVisible(false).
Remarque : si vous travaillez avec QDialog ou ses sous-classes et que vous invoquez la fonction show() après cette fonction, la boîte de dialogue sera affichée dans sa position d'origine.
Voir aussi 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 pour recevoir les événements de masquage des widgets. L'événement est transmis dans le paramètre event.
Les événements de masquage sont envoyés aux widgets immédiatement après qu'ils ont été masqués.
Remarque : un widget reçoit des événements d'affichage et de masquage spontanés lorsque son statut de mappage est modifié par le système de fenêtres, par exemple un événement de masquage spontané lorsque l'utilisateur réduit la fenêtre, et un événement d'affichage spontané lorsque la fenêtre est rétablie. Après avoir reçu un événement de masquage spontané, un widget est toujours considéré comme visible au sens de 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 painter comme ceux du widget donné. Cette fonction est appelée automatiquement lorsque le peintre est ouvert sur un QWidget.
[virtual protected] void QWidget::inputMethodEvent(QInputMethodEvent *event)
Ce gestionnaire d'événement, pour l'événement event, peut être réimplémenté dans une sous-classe pour recevoir les événements de composition de la méthode d'entrée. 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 de la méthode d'entrée.
L'implémentation par défaut appelle event->ignore(), qui rejette l'événement Input Method. Voir la documentation de QInputMethodEvent pour plus de détails.
Voir également event() et QInputMethodEvent.
[virtual] QVariant QWidget::inputMethodQuery(Qt::InputMethodQuery query) const
Cette méthode ne concerne que les widgets de saisie. Elle est utilisée par la méthode de saisie pour interroger un ensemble de propriétés du widget afin de pouvoir prendre en charge des opérations complexes de la méthode de saisie, telles que la prise en charge du texte environnant et des reconversions.
query spécifie quelle propriété est interrogée.
Voir aussi inputMethodEvent(), QInputMethodEvent, QInputMethodQueryEvent, et inputMethodHints.
void QWidget::insertAction(QAction *before, QAction *action)
Insère l'action action dans la liste des actions de ce widget, avant l'action before. Il ajoute l'action si before est nullptr ou si before n'est pas une action valide pour ce widget.
Un site QWidget ne doit avoir qu'une seule action de chaque type.
Voir aussi removeAction(), addAction(), QMenu, contextMenuPolicy, et actions().
void QWidget::insertActions(QAction *before, const QList<QAction *> &actions)
Insère l'action actions dans la liste des actions de ce widget, avant l'action before. Il ajoute l'action si before est nullptr ou si before n'est pas une action valide pour ce widget.
Un QWidget peut avoir au maximum une action de chaque type.
Voir aussi 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 jusqu'à 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 est activé si ancestor est activé ; sinon, renvoie false.
C'est le cas si ni le widget lui-même ni aucun de ses parents jusqu'à ancestor n'a été explicitement désactivé.
isEnabledTo(0) renvoie une valeur fausse si ce widget ou l'un de ses ancêtres a été explicitement désactivé.
Le mot "ancêtre" signifie ici un widget parent 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 parentales.
Voir également setEnabled() et enabled.
bool QWidget::isHidden() const
Renvoie true si le widget est caché, sinon renvoie false.
Un widget caché ne devient visible que lorsque show() est appelé sur lui. Il ne sera pas automatiquement affiché lorsque le parent est affiché.
Pour vérifier la visibilité, utilisez plutôt !isVisible() (remarquez le point d'exclamation).
isHidden() implique !isVisible(), mais un widget peut être non visible et non caché en même temps. C'est le cas des widgets qui sont enfants de widgets qui ne sont pas visibles.
Les widgets sont caché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 devient visible si ancestor est affiché ; sinon, renvoie false.
Le cas vrai se produit si ni le widget lui-même ni aucun parent jusqu'à ancestor n'a été explicitement caché.
Cette fonction renvoie toujours true si le widget est masqué par d'autres fenêtres à l'écran, mais il pourrait être physiquement visible s'il était déplacé.
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 pas visuellement l'enfant d'un autre widget et qui possède généralement un cadre et un window title.
Une fenêtre peut avoir un parent widget. Elle sera alors groupée avec son parent et supprimée lorsque le parent est supprimé, minimisée lorsque le parent est minimisé, etc. Si elle est prise en charge par le gestionnaire de fenêtres, elle aura également une entrée commune dans la barre des tâches avec son parent.
QDialog et QMainWindow sont par défaut des fenêtres, même si un widget parent est spécifié dans le constructeur. Ce comportement est spécifié par l'option Qt::Window.
Voir aussi window(), isModal() et parentWidget().
[virtual protected] void QWidget::keyPressEvent(QKeyEvent *event)
Ce gestionnaire d'événement, pour l'événement event, peut être réimplémenté dans une sous-classe pour recevoir les événements d'appui sur une touche pour le widget.
Un widget doit appeler setFocusPolicy() pour accepter le focus initialement et avoir le focus afin de recevoir un événement d'appui sur une touche.
Si vous réimplémentez ce gestionnaire, il est très important que vous appeliez l'implémentation de la classe de base si vous n'agissez pas sur la touche.
L'implémentation par défaut ferme les fenêtres contextuelles si l'utilisateur appuie sur la séquence de touches pour QKeySequence::Cancel (généralement la touche Echap). Dans le cas contraire, l'événement est ignoré afin que le parent du widget puisse l'interpréter.
Notez que QKeyEvent commence avec isAccepted() == true, vous n'avez donc pas besoin d'appeler QKeyEvent::accept() - il suffit de ne pas appeler l'implémentation de la classe de base si vous agissez sur la touche.
Voir aussi keyReleaseEvent(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event() et QKeyEvent.
[virtual protected] void QWidget::keyReleaseEvent(QKeyEvent *event)
Ce gestionnaire d'événement, pour l'événement event, peut être réimplémenté dans une sous-classe pour recevoir les événements de relâchement des touches pour le widget.
Un widget doit être accept focus initialement et have focus pour recevoir un événement de relâchement de touche.
Si vous réimplémentez ce gestionnaire, il est très important que vous appeliez l'implémentation de la classe de base si vous n'agissez pas sur la clé.
L'implémentation par défaut ignore l'événement, de sorte que le parent du widget puisse l'interpréter.
Notez que QKeyEvent commence par isAccepted() == true, vous n'avez donc pas besoin d'appeler QKeyEvent::accept() - il suffit de ne pas appeler l'implémentation de la classe de base si vous agissez sur la touche.
Voir aussi keyPressEvent(), QEvent::ignore(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event() et QKeyEvent.
[static] QWidget *QWidget::keyboardGrabber()
Renvoie le widget qui saisit actuellement le clavier.
Si aucun widget de cette application n'est en train de saisir le clavier, nullptr est renvoyé.
Voir aussi grabMouse() et mouseGrabber().
QLayout *QWidget::layout() const
Renvoie le gestionnaire de disposition installé sur ce widget, ou nullptr si aucun gestionnaire de disposition n'est installé.
Le gestionnaire de disposition définit la géométrie des enfants du widget qui ont été ajoutés à la disposition.
Voir également setLayout(), sizePolicy() et Gestion de la disposition.
[virtual protected] void QWidget::leaveEvent(QEvent *event)
Ce gestionnaire d'événements peut être réimplémenté dans une sous-classe pour recevoir les événements de départ du widget qui sont transmis dans le paramètre event.
Un événement de sortie est envoyé au widget lorsque le curseur de la souris quitte le widget.
Voir aussi enterEvent(), mouseMoveEvent() et event().
[slot] void QWidget::lower()
Abaisse le widget au bas de la pile du widget parent.
Après cet appel, le widget sera visuellement derrière (et donc masqué par) tous les widgets frères qui se chevauchent.
Voir aussi raise() et stackUnder().
[since 6.0] QPointF QWidget::mapFrom(const QWidget *parent, const QPointF &pos) const
Traduit les coordonnées du widget pos du système de coordonnées de parent vers le système de coordonnées de ce widget. Le site parent ne doit pas être nullptr et doit être un parent du widget appelant.
Cette fonction a été introduite dans Qt 6.0.
Voir aussi 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
Traduit les coordonnées globales de l'écran pos en coordonnées du widget.
Cette fonction a été introduite dans Qt 6.0.
Voir aussi 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
Traduit les coordonnées du widget parent pos en coordonnées du widget.
Identique à mapFromGlobal() si le widget n'a pas de parent.
Cette fonction a été introduite dans Qt 6.0.
Voir aussi 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
Traduit les coordonnées du widget pos dans le système de coordonnées de parent. parent ne doit pas être nullptr et doit être un parent du widget appelant.
Cette fonction a été introduite dans Qt 6.0.
Voir aussi 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
Traduit les coordonnées du widget pos en coordonnées globales de l'écran. Par exemple, mapToGlobal(QPointF(0,0)) donne les coordonnées globales du pixel supérieur gauche du widget.
Cette fonction a été introduite dans Qt 6.0.
Voir aussi 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
Traduit la coordonnée du widget pos en une coordonnée dans le widget parent.
Identique à mapToGlobal() si le widget n'a pas de parent.
Cette fonction a été introduite dans Qt 6.0.
Voir aussi 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 de retour sera une région vide.
Voir aussi 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 à obtenir.
[virtual protected] void QWidget::mouseDoubleClickEvent(QMouseEvent *event)
Ce gestionnaire d'événement, pour l'événement event, peut être réimplémenté dans une sous-classe pour recevoir les événements de double clic de souris pour le widget.
L'implémentation par défaut appelle mousePressEvent().
Remarque : le widget recevra également les événements de pression et de relâchement de la souris en plus de l'événement de double clic. Et si un autre widget qui recouvre ce widget disparaît en réponse à des événements de pression ou de relâchement, alors ce widget ne recevra 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 est actuellement en train de saisir la souris.
Si aucun widget de cette application n'est en train de saisir la souris, nullptr est renvoyé.
Voir aussi grabMouse() et keyboardGrabber().
[virtual protected] void QWidget::mouseMoveEvent(QMouseEvent *event)
Ce gestionnaire d'événement, pour l'événement event, peut être réimplémenté dans une sous-classe pour 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 pressé.
QMouseEvent::position() indique la position du curseur de la souris par rapport à ce widget. Pour les événements de pression 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 être différente si la main de l'utilisateur tremble. Il s'agit d'une caractéristique du système de fenêtres sous-jacent, et non de Qt.
Si vous souhaitez afficher une infobulle immédiatement, pendant que la souris se déplace (par exemple, pour obtenir les coordonnées de la souris avec QMouseEvent::position() et les afficher en tant qu'infobulle), vous devez d'abord activer le suivi de la souris comme décrit ci-dessus. Ensuite, pour garantir la mise à jour immédiate de l'infobulle, vous devez appeler QToolTip::showText() au lieu de setToolTip() dans votre implémentation de mouseMoveEvent().
Voir aussi setMouseTracking(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), event(), QMouseEvent, et Scribble Example.
[virtual protected] void QWidget::mousePressEvent(QMouseEvent *event)
Ce gestionnaire d'événement, pour l'événement event, peut être réimplémenté dans une sous-classe pour recevoir les événements de pression de la souris pour le widget.
Si vous créez de nouveaux widgets dans mousePressEvent(), mouseReleaseEvent() peut ne pas se retrouver là où vous l'attendez, en fonction du système de fenêtres sous-jacent (ou du gestionnaire de fenêtres X11), de l'emplacement des widgets et peut-être d'autres choses encore.
L'implémentation par défaut permet de fermer les fenêtres contextuelles lorsque vous cliquez en dehors de la fenêtre. Pour les autres types de widgets, elle ne fait rien.
Voir aussi mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent, et Scribble Example.
[virtual protected] void QWidget::mouseReleaseEvent(QMouseEvent *event)
Ce gestionnaire d'événement, pour l'événement event, peut être réimplémenté dans une sous-classe pour recevoir les événements de relâchement de la souris pour le widget.
Voir aussi mousePressEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent, et l'exemple Scribble.
void QWidget::move(int x, int y)
Cela correspond à move(QPoint(x, y)).
Note : Fonction de 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 pour recevoir les événements de déplacement du widget qui sont transmis dans le paramètre event. Lorsque le widget reçoit cet événement, il est déjà à sa nouvelle position.
L'ancienne position est accessible via QMoveEvent::oldPos().
Voir aussi 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 pour recevoir les événements de la plate-forme native identifiés par eventType qui sont transmis dans le paramètre message.
Dans votre réimplémentation de cette fonction, si vous souhaitez que l'événement ne soit plus géré par Qt XML, 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 transmis à Qt, qui le traduit 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'une poignée de fenêtre native.
Note : Cette fonction reprend les fonctions de filtrage d'événements x11Event(), winEvent() et macEvent() de Qt 4.
| Plate-forme | Identifiant du type d'événement | Type de message | Type 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 suivant qui possède un identifiant système, ou nullptr s'il n'a pas de parent natif.
Voir aussi effectiveWinId().
QWidget *QWidget::nextInFocusChain() const
Renvoie le widget suivant dans la chaîne de focalisation de ce widget.
Voir également previousInFocusChain().
void QWidget::overrideWindowFlags(Qt::WindowFlags flags)
Définit les drapeaux de fenêtre pour le widget à flags, sans en informer le système de fenêtres.
Attention : N'appelez pas cette fonction si vous ne savez pas vraiment ce que vous faites.
Voir aussi setWindowFlags().
[override virtual] QPaintEngine *QWidget::paintEngine() const
Réimplémente : QPaintDevice::paintEngine() const.
Renvoie le moteur de peinture du widget.
Notez que cette fonction ne doit pas être appelée explicitement par l'utilisateur, puisqu'elle n'est destinée qu'à des fins de réimplémentation. La fonction est appelée par Qt en interne, 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 pour recevoir des événements de peinture transmis à event.
Un événement de peinture est une demande de repeindre tout ou partie d'un widget. Il peut se produire pour l'une des raisons suivantes :
- repaint() ou update() a été invoqué,
- le widget était masqué et a été découvert, ou
- pour de nombreuses autres raisons.
De nombreux widgets peuvent simplement repeindre toute leur surface lorsqu'on le leur demande, mais certains widgets lents doivent optimiser leur vitesse en ne peignant que la région demandée : QPaintEvent::region(). Cette optimisation de la vitesse ne change pas le résultat, car la peinture est limitée à cette région pendant le traitement des événements. QListView et QTableView font cela, par exemple.
Qt tente également d'accélérer la peinture en fusionnant plusieurs événements de peinture en un seul. Lorsque update() est appelé plusieurs fois ou que le système de fenêtres envoie plusieurs événements de peinture, Qt fusionne ces événements en un seul événement avec une région plus grande (voir QRegion::united()). La fonction repaint() ne permet pas cette optimisation, c'est pourquoi nous suggérons d'utiliser update() dans la mesure du possible.
Lorsque l'événement de peinture se produit, la région de mise à jour a normalement été effacée, de sorte que vous peignez 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, QWidget met automatiquement en double tampon sa peinture, il n'est donc pas nécessaire d'écrire du code de mise en double tampon dans paintEvent() pour éviter le scintillement.
Remarque : en règle générale, vous devez vous abstenir d'appeler update() ou repaint() à l'intérieur d' une fonction paintEvent(). Par exemple, appeler update() ou repaint() sur des enfants à l'intérieur d'un paintEvent() entraîne un comportement indéfini ; l'enfant peut ou non recevoir un événement de peinture.
Attention : Si vous utilisez un moteur de peinture 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 parent de ce widget, ou nullptr s'il n'a pas de widget parent.
QWidget *QWidget::previousInFocusChain() const
La fonction previousInFocusChain 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 sommet de la pile du widget parent.
Après cet appel, le widget sera visuellement devant tous les widgets frères qui se chevauchent.
Remarque : lorsque vous utilisez activateWindow(), vous pouvez appeler cette fonction pour vous assurer que la fenêtre est empilée au sommet.
Voir également lower() et stackUnder().
void QWidget::releaseKeyboard()
Libère l'emprise du clavier.
Voir aussi grabKeyboard(), grabMouse() et releaseMouse().
void QWidget::releaseMouse()
Libère la saisie de la souris.
Voir aussi grabMouse(), grabKeyboard() et releaseKeyboard().
void QWidget::releaseShortcut(int id)
Supprime le raccourci avec le id donné 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 n'ait d'autres raccourcis avec la même séquence de touches).
Attention : Vous ne devriez normalement pas avoir besoin d'utiliser cette fonction puisque le système de raccourcis de Qt supprime les raccourcis automatiquement lorsque leur widget parent est détruit. Il est préférable d'utiliser QAction ou QShortcut pour gérer les raccourcis, car ils sont plus faciles à utiliser que cette fonction de bas niveau. Notez également qu'il s'agit d'une opération coûteuse.
Voir aussi grabShortcut() et setShortcutEnabled().
void QWidget::removeAction(QAction *action)
Supprime l'action action de la liste des actions de ce widget.
Voir aussi insertAction() et actions().
void QWidget::render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
Effectue le rendu de sourceRegion de ce widget dans target en utilisant renderFlags pour déterminer le mode de rendu. Le rendu commence à targetOffset dans target. Par exemple, si est une région nulle, cette fonction utilisera () comme région, c'est-à-dire tout le widget :
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 le widget entier.
Veillez à appeler QPainter::end() pour le peintre actif du périphérique target (le cas échéant) avant d'effectuer le rendu. Par exemple :
QPainter painter(this); ... painter.end(); myWidget->render(this);
Note : 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))
Rend le widget dans le painter's QPainter::device().
Les transformations et les paramètres appliqués à painter seront utilisés lors du rendu.
Remarque : le site painter doit être actif. Sous macOS, le widget sera rendu dans un QPixmap puis dessiné par le painter.
Il s'agit d'une fonction surchargée.
Voir aussi QPainter::device().
[slot] void QWidget::repaint()
Repeint le widget directement en appelant paintEvent() immédiatement, sauf si les mises à jour sont désactivées ou si le widget est caché.
Nous vous conseillons de n'utiliser repaint() que si vous avez besoin d'un repeint 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.
Attention : Si vous appelez repaint() dans une fonction qui peut elle-même être appelée depuis paintEvent(), vous risquez d'obtenir une récursion infinie. La fonction update() ne provoque jamais de récursion.
Note : Ce slot est surchargé. Pour se 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(); });Voir aussi update(), paintEvent(), et setUpdatesEnabled().
void QWidget::repaint(const QRect &rect)
Cette version repeint un rectangle rect à l'intérieur du widget.
Il s'agit d'une fonction surchargée.
void QWidget::repaint(const QRegion &rgn)
Cette version repeint 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 repeint un rectangle (x, y, w, h) à l'intérieur du widget.
Si w est négatif, il est remplacé par width() - x, et si h est négatif, il est remplacé par height() - y.
Il s'agit d'une fonction surchargée.
void QWidget::resize(int w, int h)
Cela correspond à resize(QSize(w, h)).
Note : Fonction de 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 pour recevoir les événements de redimensionnement du widget qui sont passés dans le paramètre event. Lorsque resizeEvent() est appelé, le widget a déjà sa nouvelle géométrie. L'ancienne taille est accessible via QResizeEvent::oldSize().
Le widget sera effacé et recevra un événement de peinture immédiatement après le traitement de l'événement de redimensionnement. Aucun dessin n'a besoin d'être (ou ne devrait être) fait à l'intérieur de ce gestionnaire.
Voir aussi 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 premier niveau 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 est hors écran, elle sera modifiée pour être à l'intérieur de la géométrie disponible à l'écran.
Pour restaurer une géométrie sauvegardée à l'aide de QSettings, vous pouvez utiliser un code comme celui-ci :
QSettings settings("MyCompany", "MyApp"); myWidget->restoreGeometry(settings.value("myWidget/geometry").toByteArray());
Voir la documentation sur la géométrie des fenêtres pour une vue d'ensemble des problèmes de géométrie avec les fenêtres.
Utilisez QMainWindow::restoreState() pour restaurer la géométrie et l'état des barres d'outils et des widgets du dock.
Voir aussi saveGeometry(), QSettings, QMainWindow::saveState(), et QMainWindow::restoreState().
QByteArray QWidget::saveGeometry() const
Sauvegarde la géométrie et l'état actuels des widgets de niveau supérieur.
Pour sauvegarder la géométrie lorsque la fenêtre se ferme, vous pouvez implémenter un événement de fermeture comme celui-ci :
void MyWidget::closeEvent(QCloseEvent *event) { QSettings settings("MyCompany", "MyApp"); settings.setValue("geometry", saveGeometry()); QWidget::closeEvent(event); }
Voir la documentation sur la géométrie des fenêtres pour une vue d'ensemble des problèmes de géométrie avec les fenêtres.
Utilisez QMainWindow::saveState() pour enregistrer la géométrie et l'état des barres d'outils et des widgets de dock.
Voir également restoreGeometry(), QMainWindow::saveState() et QMainWindow::restoreState().
QScreen *QWidget::screen() const
Renvoie l'écran sur lequel se trouve le widget.
Voir aussi setScreen() et windowHandle().
void QWidget::scroll(int dx, int dy)
Fait défiler le widget et ses enfants dx pixels vers la droite et 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 peinture pour les zones qui doivent être repeintes. Pour les widgets que Qt Widgets sait être opaques, il s'agit uniquement des 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 sur le bord droit doit être mise à jour.
Étant donné que 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 une 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 enfants du widget.
Si r est vide ou invalide, le résultat est indéfini.
Il s'agit d'une fonction surchargée.
Voir aussi QScrollArea.
void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)
Définit l'attribut attribute sur ce widget si on est vrai ; sinon, efface l'attribut.
Voir également testAttribute().
void QWidget::setBackgroundRole(QPalette::ColorRole role)
Définit le rôle d'arrière-plan du widget à role.
Le rôle d'arrière-plan définit la brosse de la page palette du widget qui est utilisée pour rendre l'arrière-plan.
Si role est QPalette::NoRole, le widget hérite du rôle d'arrière-plan de son parent.
Notez que les styles sont libres de choisir n'importe quelle couleur dans 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)). Fixe la taille de base du widget à la largeur basew et à la hauteur baseh.
Remarque : fonction de définition de la propriété baseSize.
Il s'agit d'une fonction surchargée.
Voir aussi baseSize().
void QWidget::setContentsMargins(int left, int top, int right, int bottom)
Définit les marges autour du contenu du widget pour qu'elles aient les tailles left, top, right, et bottom. Les marges sont utilisées par le système de mise en page et peuvent être utilisées par les sous-classes pour spécifier la zone dans laquelle dessiner (par exemple en excluant le cadre).
La modification des marges déclenche une commande resizeEvent().
Voir également contentsRect() et contentsMargins().
void QWidget::setContentsMargins(const QMargins &margins)
La fonction setContentsMargins définit les marges autour du contenu du widget.
Définit les marges autour du contenu du widget pour qu'elles aient les tailles déterminées par margins. Les marges sont utilisées par le système de mise en page et peuvent être utilisées par les sous-classes pour spécifier la zone dans laquelle dessiner (par exemple, en excluant le cadre).
La modification des marges déclenche l'exécution de la fonction 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 disable est vrai ; sinon, active les événements de saisie.
Voir la documentation de enabled pour plus d'informations.
Voir aussi isEnabledTo(), QKeyEvent, QMouseEvent, et changeEvent().
void QWidget::setEditFocus(bool enable)
Si enable est vrai, ce widget a le focus d'édition, auquel cas Qt::Key_Up et Qt::Key_Down seront livrés au widget normalement ; sinon, Qt::Key_Up et Qt::Key_Down sont utilisés pour changer le focus.
Cette fonctionnalité n'est disponible que dans Qt pour Linux embarqué.
Voir aussi hasEditFocus() et QApplication::navigationMode().
void QWidget::setFixedHeight(int h)
Définit les hauteurs minimale et maximale du widget à h sans modifier les largeurs. Fourni pour des raisons de commodité.
Voir aussi sizeHint(), minimumSize(), maximumSize() et setFixedSize().
void QWidget::setFixedSize(const QSize &s)
Fixe les tailles minimale et maximale du widget à s, l'empêchant ainsi de grandir ou de rétrécir.
Cela annule les contraintes de taille par défaut définies par QLayout.
Pour supprimer les contraintes, réglez la taille sur QWIDGETSIZE_MAX.
Par ailleurs, 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)
Fixe la largeur du widget à w et la hauteur à h.
Il s'agit d'une fonction surchargée.
void QWidget::setFixedWidth(int w)
Définit la largeur minimale et maximale du widget à w sans modifier les hauteurs. Fourni pour des raisons de commodité.
Voir aussi sizeHint(), minimumSize(), maximumSize() et setFixedSize().
void QWidget::setFocus(Qt::FocusReason reason)
Donne le focus de l'entrée clavier à ce widget (ou à son proxy de focus) si ce widget ou l'un de ses parents est le active window. L'argument reason sera passé dans tout événement de focus envoyé par cette fonction, il est utilisé pour donner une explication sur 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 sera active.
Tout d'abord, un événement "focus about to change" est envoyé au widget "focus" (s'il y en a un) pour l'informer qu'il est sur le point de perdre le focus. Ensuite, le focus est changé, un événement focus out est envoyé à l'élément de focus précédent 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 plates-formes intégrées, setFocus() n'entraînera pas l'ouverture d'un panneau de saisie par la méthode de saisie. Si vous voulez que cela se produise, vous devez envoyer vous-même un événement QEvent::RequestSoftwareInputPanel au widget.
setFocus() donne le focus à un widget indépendamment de sa politique de focus, mais n'efface pas la saisie au clavier (voir grabKeyboard()).
Sachez que si le widget est caché, il n'acceptera pas le focus tant qu'il ne sera pas affiché.
Attention : Si vous appelez setFocus() dans une fonction qui peut elle-même être appelée depuis focusOutEvent() ou focusInEvent(), vous risquez d'obtenir une récursion infinie.
Voir aussi hasFocus(), clearFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy(), focusWidget(), QApplication::focusWidget(), grabKeyboard(), grabMouse(), Keyboard Focus in Widgets, et QEvent::RequestSoftwareInputPanel.
[slot] void QWidget::setFocus()
Donne le focus de l'entrée clavier à ce widget (ou à son proxy de focus) si ce widget ou l'un de ses parents est le active window.
Note : Ce slot est surchargé. Pour se 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(); });void QWidget::setFocusProxy(QWidget *w)
Définit le proxy de focus du widget vers le widget w. Si w est nullptr, la fonction réinitialise ce widget pour qu'il n'ait pas de proxy de focus.
Certains widgets peuvent "avoir le focus", mais créent un widget enfant, tel que QLineEdit, pour gérer le focus. Dans ce cas, le widget peut définir l'édition de ligne comme son proxy de focus.
setFocusProxy() définit le widget qui obtiendra le focus lorsque "ce widget" l'obtiendra. S'il existe un proxy de focus, setFocus() et hasFocus() opèrent sur le proxy de focus. 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 à role.
Le rôle d'avant-plan définit la couleur du widget palette utilisée pour dessiner l'avant-plan.
Si role est QPalette::NoRole, le widget utilise un rôle d'avant-plan qui contraste avec le rôle d'arrière-plan.
Notez que les styles sont libres de choisir n'importe quelle couleur dans 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 aussi foregroundRole() et backgroundRole().
void QWidget::setGeometry(int x, int y, int w, int h)
Cela correspond à setGeometry(QRect(x, y, w, h)).
Note : Fonction de définition de la propriété geometry.
Il s'agit d'une fonction surchargée.
Voir aussi geometry().
void QWidget::setGraphicsEffect(QGraphicsEffect *effect)
La fonction setGraphicsEffect permet de définir l'effet graphique du widget.
Définit effect comme l'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, setGraphicsEffect() supprimera l'effet du widget et l'installera sur ce widget.
QWidget prend possession de effect.
Remarque : cette fonction appliquera l'effet à elle-même et à tous ses enfants.
Remarque : les effets graphiques ne sont pas pris en charge pour les widgets basés sur OpenGL, tels que QGLWidget, QOpenGLWidget et QQuickWidget.
Voir également graphicsEffect().
[slot] void QWidget::setHidden(bool hidden)
Fonction de commodité, équivalente à setVisible( !hidden).
Voir aussi isHidden().
void QWidget::setLayout(QLayout *layout)
Définit le gestionnaire de mise en page de ce widget à layout.
Si un gestionnaire de disposition 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 disposition existant (renvoyé par layout()) avant de pouvoir appeler setLayout() avec la nouvelle disposition.
Si layout est le gestionnaire de disposition d'un autre widget, setLayout() répartira la disposition et en fera le gestionnaire de disposition de ce widget.
Exemple :
QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(formWidget); formWidget->setLayout(layout);
Une alternative à l'appel de cette fonction est de passer ce widget au constructeur du layout.
Le QWidget deviendra propriétaire du layout.
Voir également layout() et Gestion de la disposition.
void QWidget::setMask(const QBitmap &bitmap)
Ne rend visibles que les pixels du widget pour lesquels bitmap a un bit 1 correspondant. Si la région comprend des pixels en dehors de rect() du widget, les contrôles du système de fenêtres dans cette zone peuvent être visibles ou non, en fonction de 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 avec 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 sur l'écran.
Les widgets masqués ne reçoivent des événements de souris que sur leurs parties visibles.
Voir également mask(), clearMask() et windowOpacity().
void QWidget::setMask(const QRegion ®ion)
Ne rend visible que les parties du widget qui se superposent à region. Si la région comprend des pixels en dehors de rect() du widget, les contrôles du système de fenêtres dans cette zone peuvent être visibles ou non, en fonction de la plate-forme.
Étant donné que QRegion permet de créer des régions arbitrairement complexes, les masques de widgets peuvent être adaptés aux fenêtres les moins conventionnelles et permettent même d'afficher des widgets troués. Notez que cet effet peut être lent si la région est particulièrement complexe.
Les masques de widgets sont utilisés pour indiquer au système de fenêtres que l'application ne veut pas d'événements de souris pour les zones situées à l'extérieur du masque. Sur la plupart des systèmes, ils entraînent également un écrêtage visuel grossier. Pour obtenir des bords de fenêtre lisses, utilisez plutôt un arrière-plan translucide et une peinture anticrénelée, comme le montre l'exemple de l'arrière-plan translucide.
Il s'agit d'une fonction surchargée.
Voir aussi windowOpacity.
void QWidget::setMaximumSize(int maxw, int maxh)
Cette fonction correspond à setMaximumSize(QSize(maxw, maxh)). Fixe la largeur maximale à maxw et la hauteur maximale à maxh.
Remarque : fonction de définition de la propriété maximumSize.
Il s'agit d'une fonction surchargée.
Voir aussi maximumSize().
void QWidget::setMinimumSize(int minw, int minh)
Cette fonction correspond à setMinimumSize(QSize(minw, minh)). Fixe la largeur minimale à minw et la hauteur minimale à minh.
Remarque : fonction de 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 à parent, et réinitialise les drapeaux de la 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 reparenté et ses enfants sont ajoutés à la fin de 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 clearFocus() pour ce widget.
Si le nouveau widget parent se trouve dans la même fenêtre que l'ancien parent, la définition du parent ne modifie pas l'ordre des onglets ni le focus clavier.
Si le "nouveau" widget parent est l'ancien widget parent, cette fonction ne fait rien.
Remarque : le widget devient invisible lorsqu'il change de parent, même s'il était visible auparavant. Vous devez appeler show() pour rendre le widget à nouveau visible.
Attention : Il est très peu probable que vous ayez besoin de cette fonction. Si vous avez un widget dont le contenu change dynamiquement, il est beaucoup plus facile d'utiliser QStackedWidget.
Voir aussi setWindowFlags().
void QWidget::setParent(QWidget *parent, Qt::WindowFlags f)
Cette fonction prend également en argument les drapeaux des widgets, f.
Il s'agit d'une fonction surchargée.
void QWidget::setScreen(QScreen *screen)
Définit l'écran sur lequel le widget doit être affiché à 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 composé de plusieurs écrans, la fenêtre ne se déplacera pas automatiquement sur screen. Pour placer 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 enable est vrai, la répétition automatique du raccourci avec le nom id est activée ; sinon, elle est désactivée.
Voir aussi grabShortcut() et releaseShortcut().
void QWidget::setShortcutEnabled(int id, bool enable = true)
Si enable est vrai, le raccourci correspondant à id est activé ; sinon, le raccourci est désactivé.
Attention : Vous ne devriez normalement pas avoir besoin d'utiliser cette fonction puisque le système de raccourcis de Qt active/désactive les raccourcis automatiquement au fur et à mesure que les widgets deviennent cachés/visibles et gagnent ou perdent le focus. Il est préférable d'utiliser QAction ou QShortcut pour gérer les raccourcis, car ils sont plus faciles à utiliser que cette fonction de bas niveau.
Voir aussi grabShortcut() et releaseShortcut().
void QWidget::setSizeIncrement(int w, int h)
Fixe l'incrément de taille x (largeur) à w et l'incrément de taille y (hauteur) à h.
Remarque : fonction de définition de la propriété sizeIncrement.
Il s'agit d'une fonction surchargée.
Voir aussi sizeIncrement().
void QWidget::setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
Définit la politique de taille du widget à horizontal et vertical, avec un étirement standard et pas de hauteur pour la largeur.
Note : Fonction de définition de la propriété sizePolicy.
Il s'agit d'une fonction surchargée.
Voir aussi sizePolicy() et QSizePolicy::QSizePolicy().
void QWidget::setStyle(QStyle *style)
Définit le style d'interface graphique du widget à style. La propriété de l'objet style n'est pas transférée.
Si aucun style n'est défini, le widget utilise le style de l'application, QApplication::style() à la place.
La définition du style d'un widget n'a aucun effet sur les widgets enfants existants ou futurs.
Attention : Cette fonction est particulièrement utile à des fins de démonstration, lorsque vous voulez montrer les capacités de style de Qt. Les applications réelles devraient l'éviter et utiliser un style d'interface graphique cohérent à la place.
Attention : Les feuilles de style Qt ne sont actuellement pas prises en charge pour les sous-classes personnalisées de QStyle. Nous prévoyons d'y remédier dans une prochaine version.
Voir aussi 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 des priorités.
Cela supprime effectivement le widget second de sa chaîne de focalisation et l'insère après le widget first.
Notez que puisque l'ordre de tabulation du widget second est modifié, vous devez ordonner une 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
et non comme ceci :
// 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 a un proxy de focus, setTabOrder() remplace correctement le proxy.
Note : Depuis Qt Widgets 5.10 : Un widget qui a un enfant comme proxy de focus est considéré comme un widget composé. Lors de l'établissement 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, au premier enfant à l'intérieur de second.
Voir également setFocusPolicy(), setFocusProxy() et Keyboard Focus in 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 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 (QWidget *, QWidget *) :
setTabOrder({a, b, c, d}); // a to b to c to dL'appel ne crée pas de boucle fermée de mise au point de l'onglet. S'il existe d'autres widgets avec la politique de focalisation Qt::TabFocus, la tabulation sur d déplacera la focalisation sur l'un de ces widgets, et non sur a.
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.6.
Voir aussi setFocusPolicy(), setFocusProxy(), et Keyboard Focus in Widgets.
void QWidget::setWindowFlag(Qt::WindowType flag, bool on = true)
Définit l'indicateur de fenêtre flag sur ce widget si on est vrai ; sinon, efface l'indicateur.
Remarque : cette fonction appelle setParent() lorsqu'elle modifie les drapeaux d'une fenêtre, ce qui a pour effet de masquer le widget. Vous devez appeler show() pour rendre le widget à nouveau visible.
Voir aussi setWindowFlags(), windowFlags() et windowType().
void QWidget::setWindowRole(const QString &role)
Définit le rôle de la fenêtre à role. Cela n'a de sens que pour les fenêtres sous X11.
Voir aussi windowRole().
void QWidget::setWindowState(Qt::WindowStates windowState)
Définit l'état de la fenêtre à windowState. L'état de la fenêtre est une combinaison OR de 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 préservant son état maximisé et/ou plein écran), utilisez le code suivant :
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 fenêtres, Qt::WindowActive n'est pas immédiat et peut être ignoré dans certains cas.
Lorsque l'état de la fenêtre change, le widget reçoit un message changeEvent() de type QEvent::WindowStateChange.
Voir également Qt::WindowState et windowState().
void QWidget::setupUi(QWidget *widget)
Configure l'interface utilisateur pour le site widget spécifié.
Remarque : cette fonction est disponible avec les widgets qui dérivent des descriptions d'interface utilisateur créées à l'aide d'uic.
Voir aussi Utilisation d'un fichier Designer UI dans votre application.
[slot] void QWidget::show()
Affiche le widget et ses widgets enfants.
Pour les fenêtres enfant, cela équivaut à appeler setVisible(true). Sinon, cela équivaut à appeler showFullScreen(), showMaximized() ou setVisible(true), en fonction du comportement par défaut de la plateforme pour les drapeaux de fenêtre.
Voir aussi 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 pour recevoir les événements d'affichage des widgets qui sont transmis dans 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 après.
Remarque : un widget reçoit des événements d'affichage et de masquage spontanés lorsque son statut de mappage est modifié par le système de fenêtres, par exemple un événement de masquage spontané lorsque l'utilisateur réduit la fenêtre, et un événement d'affichage spontané lorsque la fenêtre est rétablie. Après avoir reçu un événement de masquage spontané, un widget est toujours considéré comme visible au sens de isVisible().
Voir également visible, event() et QShowEvent.
[slot] void QWidget::showFullScreen()
Affiche le widget en mode plein écran.
L'appel à cette fonction n'affecte que windows.
Pour revenir du mode plein écran, appelez showNormal() ou close().
Remarque : le mode plein écran fonctionne bien sous Windows, mais pose 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 non décorées. Par conséquent, le mieux que vous puissiez faire est de demander une fenêtre sans bordure, de la placer et de la redimensionner pour qu'elle remplisse tout l'écran. Selon le gestionnaire de fenêtres, cela peut fonctionner ou non. La fenêtre sans bordures est demandée à l'aide d'indices MOTIF, qui sont au moins partiellement pris en charge par la quasi-totalité des gestionnaires de fenêtres modernes.
Une autre solution consisterait à contourner entièrement le gestionnaire de fenêtres et à créer une fenêtre avec le drapeau Qt::X11BypassWindowManagerHint. Cette solution présente cependant d'autres problèmes graves, comme la perte du focus clavier et des effets très étranges sur les changements de bureau ou lorsque l'utilisateur soulève d'autres fenêtres.
Les gestionnaires de fenêtres X11 qui suivent les spécifications modernes post-ICCCM supportent correctement le mode plein écran.
Sous macOS, l'affichage d'une fenêtre en plein écran met l'ensemble de l'application en mode plein écran, lui fournissant ainsi un bureau dédié. L'affichage d'une autre fenêtre pendant que l'application fonctionne en mode plein écran peut automatiquement faire passer cette fenêtre en mode plein écran. Pour éviter cela, quittez le mode plein écran en appelant showNormal() ou en appelant close() sur la fenêtre plein écran avant d'afficher une autre fenêtre.
Voir également showNormal(), showMaximized(), show(), isVisible() et close().
[slot] void QWidget::showMaximized()
Affiche le widget maximisé.
L'appel à cette fonction n'affecte que windows.
Sous X11, cette fonction peut ne pas fonctionner correctement avec certains gestionnaires de fenêtres. Voir la documentation sur la géométrie des fenêtres pour une explication.
Voir également setWindowState(), showNormal(), showMinimized(), show(), hide() et isVisible().
[slot] void QWidget::showMinimized()
Affiche le widget minimisé, sous forme d'icône.
L'appel à cette fonction n'affecte que windows.
Voir aussi showNormal(), showMaximized(), show(), hide(), isVisible() et isMinimized().
[slot] void QWidget::showNormal()
Restaure le widget après qu'il ait été maximisé ou minimisé.
L'appel à cette fonction n'affecte que windows.
Voir aussi 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 frères et sœurs.
Voir aussi raise() et lower().
QStyle *QWidget::style() const
Voir aussi QWidget::setStyle(), QApplication::setStyle() et QApplication::style().
[virtual protected] void QWidget::tabletEvent(QTabletEvent *event)
Ce gestionnaire d'événement, pour l'événement event, peut être réimplémenté dans une sous-classe pour recevoir les événements de la tablette pour le widget.
Si vous réimplémentez ce gestionnaire, il est très important que vous ignore() l'événement 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 le déplacement du stylet. Si le suivi de la tablette est activé, des événements de déplacement de la tablette se produisent même si le stylet est en vol stationnaire à proximité de 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 aussi 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 aussi enterEvent() et leaveEvent().
void QWidget::ungrabGesture(Qt::GestureType gesture)
Désabonne le widget d'un type donné gesture
Voir aussi grabGesture() et QGestureEvent.
[slot] void QWidget::update()
Met à jour le widget sauf si les mises à jour sont désactivées ou si le widget est caché.
Cette fonction ne provoque pas un repeint immédiat ; à la place, elle planifie un événement de peinture à traiter lorsque Qt revient à la boucle d'événements principale. Cela permet à Qt d'optimiser pour plus de vitesse et moins de scintillement qu'un appel à repaint().
Appeler update() plusieurs fois résulte normalement en un seul appel à paintEvent().
Qt Widgets efface normalement la zone du widget avant l'appel à paintEvent(). Si l'attribut Qt::WA_OpaquePaintEvent widget est défini, le widget est responsable de la peinture de tous ses pixels avec une couleur opaque.
Note : Ce slot est surchargé. Pour se 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(); });Voir aussi 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 repeint 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()
Notifie au système de mise en page que ce widget a changé et qu'il peut être nécessaire de modifier sa géométrie.
Appelez cette fonction si les paramètres sizeHint() ou sizePolicy() ont changé.
Pour les widgets explicitement cachés, updateGeometry() est inutile. 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 informe les méthodes de saisie que l'état spécifié par query a changé.
QRegion QWidget::visibleRegion() const
Renvoie la région non masquée où les événements de peinture peuvent se produire.
Pour les widgets visibles, il s'agit d'une approximation de la zone non couverte par d'autres widgets ; sinon, il s'agit d'une région vide.
La fonction repaint() appelle cette fonction si nécessaire ; en général, il n'est donc pas nécessaire de l'appeler.
[virtual protected] void QWidget::wheelEvent(QWheelEvent *event)
Ce gestionnaire d'événement, pour l'événement event, peut être réimplémenté dans une sous-classe pour recevoir les événements de roue pour le widget.
Si vous réimplémentez ce gestionnaire, il est très important que vous ignore() l'événement 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.
Voir également QEvent::ignore(), QEvent::accept(), event() et QWheelEvent.
WId QWidget::winId() const
Renvoie l'identifiant du système de fenêtres du widget.
Portable en principe, mais si vous l'utilisez, vous êtes probablement sur le point de faire quelque chose de non portable. Soyez prudent.
Si un widget n'est pas natif (alien) et que winId() est invoqué sur lui, ce widget recevra un handle natif.
Cette valeur peut changer à l'exécution. Un événement de type QEvent::WinIdChange sera envoyé au widget à la suite d'un changement de l'identifiant du système de fenêtres.
Voir aussi find().
QWidget *QWidget::window() const
Renvoie la fenêtre de ce widget, c'est-à-dire le widget ancêtre suivant qui a (ou pourrait avoir) un cadre de système de fenêtre.
Si le widget est une fenêtre, le widget lui-même est renvoyé.
L'utilisation typique est la modification du titre de la fenêtre :
aWidget->window()->setWindowTitle("New Window Title");
Voir aussi isWindow().
QWindow *QWidget::windowHandle() const
S'il s'agit d'un widget natif, retourner le QWindow associé. Sinon, il renvoie null.
Les widgets natifs incluent les widgets de niveau supérieur, QGLWidget, et les widgets enfants sur lesquels winId() a été appelé.
Voir aussi 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 le nouveau icon comme argument.
Note : Signal de notification pour la propriété windowIcon.
QString QWidget::windowRole() const
Renvoie le rôle de la fenêtre ou une chaîne vide.
Voir aussi setWindowRole(), windowIcon, et windowTitle.
Qt::WindowStates QWidget::windowState() const
Renvoie l'état actuel de la fenêtre. L'état de la fenêtre est une combinaison OR de Qt::WindowState: Qt::WindowMinimized, Qt::WindowMaximized, Qt::WindowFullScreen, et Qt::WindowActive.
Voir aussi 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 le nouveau title comme argument.
Note : Signal de notification pour la propriété windowTitle.
Qt::WindowType QWidget::windowType() const
Renvoie le type de fenêtre de ce widget. Ceci est identique à windowFlags() & 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.