在 js 中使用 qt activex 属性 值总是 return 空

using qt activex property value in js always return empty

我正在用 Qt 属性 构建一个 qt axserver dll,例如:

class testDll : public QObject , public QAxBindable
{
    Q_OBJECT

    Q_CLASSINFO("ClassID", "{}")
    Q_CLASSINFO("InterfaceID", "{}")
    Q_CLASSINFO("EventsID", "{}")

    Q_PROPERTY(QString name MEMBER m_name READ getName WRITE setName)

public:
    testDll(QObject *parent = 0);
    QString getName() const;

public slots:
    void setName(QString v);

signals:
    void nameChanged(QString v);

private:
    QString m_name;
};

当我在为测试而构建的 axcontainer 中使用此 dll 时,我可以获得像这样的 属性 值 QString res = container->dynamicCall("name").toString();,但是当我在 IE 中像这样使用此 属性 时var name = testDll.name; console.log(name);,它总是 return 空。

我试过 Q_PROPERTY(int number MEMBER m_number READ getNumber WRITE setNumber),可以通过以下两种方式在IE中获取属性值:

        var dll = document.getElementById("testDll");
        var num1 = dll.number;
        console.log(num1);
        var num2 = testDll.number;
        console.log(num2);

我是 activex 的新手,找不到关于 qt activex 开发的好教程。有人可以帮忙吗?

我终于解决了这个问题。这实际上有点愚蠢:name 不能用作 Q_PROPERTY 名称。在我更改 属性 名称后,它起作用了。