【发布时间】:2017-10-06 10:48:21
【问题描述】:
我在 Qt 中遇到了“设计/实现”问题。 目前我什至不确定这是否是一个聪明的设计...... 这是我在这里的第一篇文章,我真的不知道从哪里开始......
所以我试试是这样的... 目前我有这样的事情:
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;
};
那是我想在“MyClass”中拥有的“NewProperty”类,因为最终将不仅仅是一个“名称”属性...... NewProject.cpp 文件目前非常基本......
而且项目中还会有几个MyClass。
我的“MyClass”最后会有几个“NewProperty”的元素... 但我不确定如何以正确/好的方式将“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: Cannot read property 'name' of undefined
对于更好的编码,我将不胜感激任何帮助或提示...
问候,
萌
【问题讨论】: