在 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 名称。在我更改 属性 名称后,它起作用了。
我正在用 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 名称。在我更改 属性 名称后,它起作用了。