QAxWidget Class
La classe QAxWidget est une QWidget qui englobe un contrôle ActiveX. Plus d'informations...
| En-tête : | #include <QAxWidget> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS AxContainer)target_link_libraries(mytarget PRIVATE Qt6::AxContainer) |
| qmake : | QT += axcontainer |
| Hérite : | QAxBaseWidget et QAxBase |
Fonctions publiques
| QAxWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
| QAxWidget(IUnknown *iface, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
| QAxWidget(const QString &c, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
| virtual | ~QAxWidget() override |
| void | clear() |
| virtual QAxAggregated * | createAggregate() |
| bool | doVerb(const QString &verb) |
Fonctions publiques réimplémentées
| virtual QSize | minimumSizeHint() const override |
| virtual void | resetControl() override |
| virtual QSize | sizeHint() const override |
Fonctions protégées
| virtual bool | createHostWindow(bool initialized) |
| bool | createHostWindow(bool initialized, const QByteArray &data) |
| virtual bool | translateKeyEvent(int message, int keycode) const |
Fonctions protégées réimplémentées
| virtual void | changeEvent(QEvent *e) override |
| virtual void | connectNotify(const QMetaMethod &signal) override |
| virtual bool | initialize(IUnknown **ptr) override |
| virtual void | resizeEvent(QResizeEvent *) override |
Description détaillée
Un QAxWidget peut être instancié en tant qu'objet vide, avec le nom du contrôle ActiveX qu'il doit envelopper, ou avec un pointeur d'interface existant vers le contrôle ActiveX. Les propriétés, méthodes et événements du contrôle ActiveX, qui n'utilisent que les types de données supportés par QAxBase, deviennent disponibles en tant que propriétés, slots et signaux Qt. La classe de base QAxBase fournit une API permettant d'accéder directement à l'ActiveX via le pointeur IUnknown.
QAxWidget est un QWidget et peut être utilisé comme tel, par exemple, il peut être organisé dans une hiérarchie de widgets et de dispositions ou agir comme un filtre d'événements. Les propriétés standard des widgets, par exemple enabled, sont prises en charge, mais il dépend du contrôle ActiveX d'implémenter la prise en charge des propriétés ambiantes telles que la palette ou la police. QAxWidget tente de fournir les indications nécessaires.
Cependant, vous ne pouvez pas réimplémenter les gestionnaires d'événements spécifiques à Qt comme mousePressEvent ou keyPressEvent et vous attendre à ce qu'ils soient appelés de manière fiable. Le contrôle intégré couvre entièrement le QAxWidget et gère généralement lui-même l'interface utilisateur. Utilisez des API spécifiques au contrôle (c'est-à-dire écoutez les signaux du contrôle), ou utilisez des techniques COM standard comme la sous-classification des procédures de fenêtre.
QAxWidget hérite également de la plupart des fonctionnalités liées à ActiveX de QAxBase, notamment dynamicCall() et querySubObject().
Attention : Vous pouvez sous-classer QAxWidget, mais vous ne pouvez pas utiliser la macro Q_OBJECT dans la sous-classe (le fichier moc généré ne se compilera pas), de sorte que vous ne pouvez pas ajouter d'autres signaux, slots ou propriétés. Cette limitation est due aux informations sur les métaobjets générées lors de l'exécution. Pour contourner ce problème, agrégez le QAxWidget en tant que membre de la sous-classe QObject.
Voir également QAxBase, QAxObject, QAxScript, et ActiveQt Framework.
Documentation des fonctions membres
[explicit] QAxWidget::QAxWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
Crée un widget QAxWidget vide et propage parent et f au constructeur QWidget. Pour initialiser un contrôle, appelez setControl().
[explicit] QAxWidget::QAxWidget(IUnknown *iface, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
Crée un QAxWidget qui enveloppe l'objet COM référencé par iface. parent et f sont propagés dans le contructeur QWidget.
[explicit] QAxWidget::QAxWidget(const QString &c, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
Crée un widget QAxWidget et initialise le contrôle ActiveX c. parent et f sont propagés dans le constructeur QWidget.
Voir aussi setControl().
[override virtual noexcept] QAxWidget::~QAxWidget()
Ferme le contrôle ActiveX et détruit le widget QAxWidget, en nettoyant toutes les ressources allouées.
Voir également clear().
[override virtual protected] void QAxWidget::changeEvent(QEvent *e)
Réimplémente : QWidget::changeEvent(QEvent *event).
void QAxWidget::clear()
Ferme le contrôle ActiveX.
Voir aussi resetControl().
[override virtual protected] void QAxWidget::connectNotify(const QMetaMethod &signal)
Réimplémente : QObject::connectNotify(const QMetaMethod &signal).
[virtual] QAxAggregated *QAxWidget::createAggregate()
Réimplémentez cette fonction lorsque vous souhaitez implémenter des interfaces COM supplémentaires pour le site client du contrôle ActiveX, ou lorsque vous souhaitez fournir des implémentations alternatives d'interfaces COM. Renvoie un nouvel objet d'une sous-classe de QAxAggregated.
L'implémentation par défaut renvoie le pointeur null.
[virtual protected] bool QAxWidget::createHostWindow(bool initialized)
Crée le site client pour le contrôle ActiveX et renvoie vrai si le contrôle a pu être intégré avec succès, sinon renvoie faux. Si initialized est vrai, le contrôle a déjà été initialisé.
Cette fonction est appelée par initialize(). Si vous réimplémentez initialize pour personnaliser l'instanciation du contrôle, appelez cette fonction dans votre réimplémentation pour que le contrôle soit intégré par défaut côté client. Crée le site client pour le contrôle ActiveX et renvoie un message vrai si le contrôle a pu être intégré avec succès, sinon il renvoie un message faux.
[protected] bool QAxWidget::createHostWindow(bool initialized, const QByteArray &data)
Crée le site client pour le contrôle ActiveX et retourne vrai si le contrôle a pu être incorporé avec succès, sinon il retourne faux. Si initialized est faux, le contrôle sera initialisé à l'aide de l'interface data. Le contrôle sera initialisé à l'aide de l'interface IPersistStreamInit ou IPersistStorage.
Si le contrôle doit être initialisé à l'aide de données personnalisées, appelez cette fonction dans votre réimplémentation de initialize(). Cette fonction n'est pas appelée par l'implémentation par défaut de initialize().
bool QAxWidget::doVerb(const QString &verb)
Demande au contrôle ActiveX d'effectuer l'action verb. Les verbes possibles sont renvoyés par verbs().
La fonction renvoie un résultat vrai si l'objet peut effectuer l'action, sinon elle renvoie un résultat faux.
[override virtual protected] bool QAxWidget::initialize(IUnknown **ptr)
Réimplémente : QAxBase::initialize(IUnknown **ptr).
Appelle QAxBase::initialize(ptr), et intègre le contrôle dans ce widget en appelant createHostWindow(false) en cas de succès.
Pour initialiser le contrôle avant qu'il ne soit activé, réimplémentez cette fonction et ajoutez votre code d'initialisation avant d'appeler createHostWindow(true).
Retourne true en cas de succès, false dans le cas contraire.
[override virtual] QSize QAxWidget::minimumSizeHint() const
Réimplémente une fonction d'accès à la propriété : QWidget::minimumSizeHint.
[override virtual] void QAxWidget::resetControl()
Réimplémente : QAxObjectInterface::resetControl().
Ferme le contrôle ActiveX.
[override virtual protected] void QAxWidget::resizeEvent(QResizeEvent *)
Réimplémente : QWidget::resizeEvent(QResizeEvent *event).
[override virtual] QSize QAxWidget::sizeHint() const
Réimplémente une fonction d'accès à la propriété : QWidget::sizeHint.
[virtual protected] bool QAxWidget::translateKeyEvent(int message, int keycode) const
Réimplémentez cette fonction pour transmettre certains événements de touches au contrôle ActiveX. message est l'identifiant du message Window spécifiant le type de message (c'est-à-dire WM_KEYDOWN), et keycode est le code de la touche virtuelle (c'est-à-dire VK_TAB).
Si la fonction renvoie un message vrai, l'événement touche est transmis au contrôle ActiveX, qui traite l'événement ou le transmet à Qt.
Si la fonction renvoie false, le traitement de l'événement clé est ignoré par ActiveQt, c'est-à-dire que le contrôle ActiveX peut le gérer ou non.
L'implémentation par défaut renvoie true dans les cas suivants :
| WM_SYSKEYDOWN | WM_SYSKEYUP | WM_KEYDOWN |
|---|---|---|
| Tous les codes de touches | VK_MENU | VK_TAB, VK_DELETE et toutes les touches non fléchées en combinaison avec VK_SHIFT, VK_CONTROL ou VK_MENU |
Ce tableau est le résultat d'une expérience avec les contrôles ActiveX les plus courants, c'est-à-dire Internet Explorer et les applications Microsoft Office, mais il peut nécessiter des modifications pour certains contrôles.
© 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.