QT的QAxBase類的使用
QAxBase類是一個抽象類,它提供用於初始化和訪問COM物件的API。
QAxBase是不能直接使用的抽象類,並且通過子類QAxObject和QAxWidget例項化。 此類提供了API,以通過其IUnknown實現直接訪問COM物件。 如果COM物件實現IDispatch介面,則該物件的屬性和方法將作為Qt屬性和插槽提供。
connect(buttonBack, SIGNAL(clicked()), webBrowser, SLOT(GoBack()));
可以通過Qt物件模型提供的屬性系統讀寫物件IDispatch實現公開的屬性(兩個子類都是QObject,因此可以使用QObject :: setProperty()和QObject :: property())。 不支援帶有多個引數的屬性。
activeX->setProperty("text", "some text");
int value = activeX->property("value");
可以使用dynamicCall()直接呼叫物件的IDispatch實現公開的屬性和其他方法的寫函式,也可以間接將其作為連線到訊號的插槽來呼叫。
webBrowser->dynamicCall("GoHome()");
COM物件支援的傳出事件作為標準Qt訊號發出。
connect(webBrowser, SIGNAL(TitleChanged(QString)),
this, SLOT(setCaption(QString)));
像這樣使用QAxBase API:
QAxObject object("<CLSID>");
QString text = object.property("text").toString();
object.setProperty("font", QFont("Times New Roman", 12));
connect(this, SIGNAL(clicked(int)), &object, SLOT(showColumn(int)));
bool ok = object.dynamicCall("addColumn(const QString&)", "Column 1").toBool();
QList<QVariant> varlist;
QList<QVariant> parameters;
parameters << QVariant(varlist);
int n = object.dynamicCall("fillList(QList<QVariant>&)", parameters).toInt();
QAxObject *item = object.querySubItem("item(int)", 5);
相關文章
- QT中使用ActiveX控制元件、QAxBase、QAxWidgetQT控制元件
- QT的QImage類的使用QT
- QT的QProgressDialog類的使用QT
- QT的QWGLNativeContext類的使用QTContext
- qt -- QString類及常用函式功能的使用QT函式
- QT中類之間的關係圖QT
- C++ Qt開發:使用順序容器類C++QT
- C++ Qt開發:使用關聯容器類C++QT
- QT視窗類QT
- QT中 uic 工具的使用QTUI
- Qt QApplication 類簡介--Qt 類簡介專題(四)QTAPP
- Qt中的定時器的使用QT定時器
- Qt事件過濾器的使用QT事件過濾器
- QT - 13.1.1 ListView 的簡單使用QTView
- Qt Creator 提供的預設基類只有三種QT
- 在Qt裡使用QSplashScreen類製作Splash啟動視窗QT
- Qt容器類QList、QLinkedList和QVector類QT
- QT5.9關於QMenuBar的使用QT
- Qt qAbs、qMax、qRound和qSwap的使用QT
- Qt中MainWindow類例項QTAI
- Qt中的佈局淺析與彈簧的使用,以及Qt居中的兩種方法QT
- QT執行緒的使用 moveToThread()QT執行緒thread
- Qt中(圖片)資源的使用方式QT
- Random 類的使用random
- File類的使用
- Qt 字型(04):QFont類【官翻】QT
- Qt類繼承關係圖QT繼承
- Qt-pyqt6與QTDesginers的相互使用技巧QT
- Qt入門(13)——Qt的呼叫退出QT
- Qt 報錯 “類名”does not name a typeQT
- python類的使用Python
- xUtils類庫的使用
- 【QT】 Qt多執行緒的“那些事”QT執行緒
- 已經編譯好的opencv QT creator直接使用編譯OpenCVQT
- 使用QT-QSerialport打不開串列埠的原因QT串列埠
- autohotkey qt程式中無法使用的問題QT
- QT使用 http 協議通訊的實現示例QTHTTP協議
- Qt三大視窗基類的差別QMainWindow QWidget QDialogQTAI