我在Qt中遇到了一个“设计/实现”问题。 目前我甚至不确定这是否是一个聪明的设计... 这是我的第一篇文章,我不知道从哪里开始...使用QML中Costum类中的Q_PROPERTY's
所以我会试试这个方法。 .. 目前,我有这样的事情:
class NewProperty : public QObject
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName)
.
.
.
public:
NewProperty(const QString &name, QObject *parent = 0);
QString name()const;
void setName(const QString &name);
.
.
.
private:
QString m_s_name;
};
这是一个“NewProperty”类我想有到底“MyClass的”事业会有比只是一个“名称”属性更多。 NewProject.cpp文件目前是非常基本的...
而且项目中还会有几个MyClass。
我的“MyClass”最后会有几个“NewProperty”的元素... 但我不确定如何以/ right/nice的方式将“NewProperty”传递给QML。 我试图做这样的事情:
class QML_EMail : public Base_Output
{
Q_OBJECT
public:
NewProperty prop1;
NewProperty prop2;
.
.
.
};
的main.cpp
...
qmlRegisterType<NewProperty> ("NewProperty", 1, 0, "NewProperty");
QML_EMail email
ctx->setContextProperty("email", QVariant::fromValue(&email));
...
如果我尝试调用像这样在QML文件:
import NewProperty 1.0
Rectangle {
id: emailStart
Component.onCompleted:
{
console.log(email.prop1.name)
}
我只得到这个消息:TypeError:无法读取未定义的属性“名称”
我将不胜感激帮助或为了更好的编码提示...
问候,
萌
非常感谢你......你救了我的周末。我完全忽略了文档中的MEMBER值。很有帮助 – mBucks