在使用导出的.h和.cpp 时候,因为导出类不是ui类是QAxObect类,要怎么样将这个导出类加入到widget中。
这个方法能正常初始化com组件,但是不知道怎么 将实例化的类oixctrl 对象放到一个界面中显示。oix = new OUTSIDEXLib::oixctrl();
不能用layout 布局来添加,因为oixctrl 类不是一个UI的类
class OUTSIDEXLIB_EXPORT oixctrl : public QAxObject{public: oixctrl(const QString &licenseKey = QString(), QAxObject *parent = 0) : QAxObject(parent) { if (licenseKey.isEmpty()) setControl(QStringLiteral("{4f496ab2-4708-4132-af4d-b73b5a39ca70}")); else setControl(QStringLiteral("{4f496ab2-4708-4132-af4d-b73b5a39ca70}:" + licenseKey)); }
oixctrl(Ioixctrl *iface) : QAxObject() { initializeFrom(iface); delete iface; }。。。。。。。}
如果使用下面这种方法,可以正确调用并显示ui->axWidget->setControl(QString::fromUtf8("{4F496AB2-4708-4132-AF4D-B73B5A39CA70}"));ui->axWidget->show();
QList<QVariant> commandList; commandList<<true<<' '<<0<<0<<false<<' '<<false<<0; ui->axWidget->dynamicCall("Clear()"); QString qCaption; bool result = ui->axWidget->dynamicCall("ViewFile(BOOL bDialog, VARIANT FileSpec, SHORT iSpecType, SHORT iViewAs, BOOL bUseDisplayName, BSTR szDisplayName, BOOL bDeleteOnClose, Ioixredirect *pIoRedir)" , commandList ).toBool();