Добрый день всем!
Возникла странная проблема. Почему-то при вызове QAxBase::asVariant() у объекта QAxWidget возвращает пустой вариант. Причем у QAxObject все работает замечательно. Покапался я немного в коде Qt и обнаружил, что в функции
QVariant QAxBase::asVariant() const
которая находится в файле qaxbase.cpp присутствует закомментированная строка.
QVariant QAxBase::asVariant() const
{
if (!d->ptr && !d->initialized) {
((QAxBase*)this)->initialize(&d->ptr);
d->initialized = true;
}
QVariant qvar;
QByteArray cn(className());
if (cn == "QAxObject" || cn == "QAxBase") {
if (d->dispatch())
qVariantSetValue(qvar, d->dispatch());
else if (d->ptr)
qVariantSetValue(qvar, d->ptr);
} else {
cn = cn.mid(cn.lastIndexOf(':') + 1);
QObject *object = qObject();
if (QMetaType::type(cn))
qvar = QVariant(qRegisterMetaType<QObject*>(cn + "*"), &object);
// qVariantSetValue(qvar, qObject(), cn + "*");
}
return qvar;
}
Очень странно... Версия Qt 4.4.3. Просто хочу узнать в чем дело (в Qt или в компоненте) и что я делаю не так. На VB компонента работает хорошо.