QAxBaseWidget Class
QAxBaseWidget bietet statische Eigenschaften und Signale für QAxWidget. Mehr...
Kopfzeile: | #include <QAxBaseWidget> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS AxContainer) target_link_libraries(mytarget PRIVATE Qt6::AxContainer) |
qmake: | QT += axcontainer |
Seit: | Qt 6.0 |
Vererbt: | QWidget und QAxObjectInterface |
Vererbt von: |
Eigenschaften
- classContext : const ulong
- control : const QString
Signale
void | exception(int code, const QString &source, const QString &desc, const QString &help) |
void | propertyChanged(const QString &name) |
void | signal(const QString &name, int argc, void *argv) |
Dokumentation der Eigenschaften
classContext : const ulong
Diese Eigenschaft enthält den Kontext, in dem das ActiveX-Steuerelement ausgeführt wird (standardmäßig CLSCTX_SERVER).
Die Eigenschaft beeinflusst das Argument "dwClsContext" beim Aufruf von CoCreateInstance. Dies kann verwendet werden, um in-proc vs. out-of-proc-Start für Steuerelemente, die beide Alternativen unterstützen, zu steuern. Es kann auch verwendet werden, um die Berechtigungen des Controls zu ändern/reduzieren, wenn es mit CLSCTX_ENABLE_CLOAKING und einem Impersonation-Token verwendet wird.
Beachten Sie, dass es vor setControl() gesetzt werden muss, um eine Wirkung zu haben.
Siehe auch control.
control : const QString
Diese Eigenschaft enthält den Namen des COM-Objekts, das von diesem QAxBaseWidget Objekt umschlossen wird.
Durch das Setzen dieser Eigenschaft wird das COM-Objekt initialisiert. Jedes COM-Objekt, das zuvor gesetzt wurde, wird heruntergefahren.
Der effizienteste Weg, diese Eigenschaft zu setzen, ist die Verwendung der UUID der registrierten Komponente, z. B.
ctrl->setControl("{8E27C92B-1264-101C-8A2F-040224009C02}");
Der zweitschnellste Weg ist die Verwendung des Klassennamens des registrierten Steuerelements (mit oder ohne Versionsnummer), z. B.
ctrl->setControl("MSCal.Calendar");
Der langsamste, aber einfachste Weg ist die Verwendung des vollständigen Namens des Steuerelements, z. B.
ctrl->setControl("Calendar Control 9.0");
Es ist auch möglich, das Objekt aus einer Datei zu initialisieren, z.B.
ctrl->setControl("c:/files/file.doc");
Wenn die UUID der Komponente verwendet wird, können die folgenden Muster verwendet werden, um das Steuerelement auf einem entfernten Rechner zu initialisieren, um ein lizenziertes Steuerelement zu initialisieren oder um eine Verbindung zu einem laufenden Objekt herzustellen:
- Um das Steuerelement auf einem anderen Rechner zu initialisieren, verwenden Sie das folgende Muster:
<domain/username>:<password>@server/{8E27C92B-1264-101C-8A2F-040224009C02}
- Um ein lizenziertes Steuerelement zu initialisieren, verwenden Sie das folgende Muster:
{8E27C92B-1264-101C-8A2F-040224009C02}:<LicenseKey>
- Um sich mit einem bereits laufenden Objekt zu verbinden, verwenden Sie das folgende Muster:
{8E27C92B-1264-101C-8A2F-040224009C02}&
Die ersten beiden Muster können kombiniert werden, z.B. um ein lizenziertes Steuerelement auf einem entfernten Rechner zu initialisieren:
ctrl->setControl("DOMAIN/user:password@server/{8E27C92B-1264-101C-8A2F-040224009C02}:LicenseKey");
Die Lesefunktion des Steuerelements gibt immer die UUID des Steuerelements zurück, falls vorhanden einschließlich des Lizenzschlüssels, und den Namen des Servers, aber nicht den Benutzernamen, die Domäne oder das Passwort.
Siehe auch classContext.
Dokumentation der Mitgliedsfunktionen
[signal]
void QAxBaseWidget::exception(int code, const QString &source, const QString &desc, const QString &help)
Dieses Signal wird ausgegeben, wenn das COM-Objekt beim Aufruf über die OLE-Automatisierungsschnittstelle IDispatch eine Ausnahme auslöst. code source , desc und help liefern Informationen über die Ausnahme, wie sie vom COM-Server bereitgestellt werden, und können verwendet werden, um dem Endbenutzer nützliches Feedback zu geben. help enthält die Hilfedatei und die Hilfekontext-ID in Klammern, z. B. "Dateiname [id]".
Siehe auch QAxBaseObject::exception().
[signal]
void QAxBaseWidget::propertyChanged(const QString &name)
Wenn das COM-Objekt die Eigenschaftsbenachrichtigung unterstützt, wird dieses Signal ausgegeben, wenn die Eigenschaft namens name geändert wird.
Siehe auch QAxBaseObject::propertyChanged().
[signal]
void QAxBaseWidget::signal(const QString &name, int argc, void *argv)
Dieses generische Signal wird ausgegeben, wenn das COM-Objekt das Ereignis name ausgibt. argc ist die Anzahl der vom Ereignis bereitgestellten Parameter (DISPPARAMS.cArgs), und argv ist der Zeiger auf die Parameterwerte (DISPPARAMS.rgvarg). Beachten Sie, dass die Reihenfolge der Parameterwerte umgedreht ist, d.h. das letzte Element des Arrays ist der erste Parameter in der Funktion.
void Receiver::slot(const QString &name, int argc, void *argv) { VARIANTARG *params = (VARIANTARG*)argv; if (name.startsWith("BeforeNavigate2(")) { IDispatch *pDisp = params[argc-1].pdispVal; VARIANTARG URL = *params[argc-2].pvarVal; VARIANTARG Flags = *params[argc-3].pvarVal; VARIANTARG TargetFrameName = *params[argc-4].pvarVal; VARIANTARG PostData = *params[argc-5].pvarVal; VARIANTARG Headers = *params[argc-6].pvarVal; bool *Cancel = params[argc-7].pboolVal; } }
Verwenden Sie dieses Signal, wenn das Ereignis Parameter mit nicht unterstützten Datentypen hat. Andernfalls verbinden Sie sich direkt mit dem Signal name.
Siehe auch QAxBaseObject::signal().
© 2025 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.