我有一个具有某个功能的类,在某些点上可能会或可能不会失败。它应该产生一个错误消息,可以向用户显示并在失败时返回false。 这就是我所拥有的:
class MyManager : public QObject
{
Q_OBJECT
public:
MyManager(QObject* parent);
bool createSomething() {
if(foo == false) {
qDebug() << "foo can't be false here";
//Error message should be shown to user
return false;
}
//Do stuff
}
C ++方面应该不了解QML中的实现。一种可能的方法是获得error(const QString& msg)
信号,如下所示:
bool createSomething() {
if(foo == false) {
qDebug() << "foo can't be false here"
emit error("Foo is false");
return false;
}
//Do stuff
}
并且必须像这样显示QML:
Connection {
target: manager
onError: errorMessageText.text = msg
}
一个也可以更具体,并有一个名为creationError(const QString& msg)
这整个实现感觉不对,我确信在架构上有更好的方法。我对这方面的一些见解和想法很满意!
答案 0 :(得分:0)
我认为你的方式并不是那么糟糕。
无论如何,你也可以通过例如这样做。使用QObject::setProperty()
直接从C ++设置属性,或者通过QMetaObject::invokeMethod
调用为您更改它的QML方法,但您必须存储(或每次查找)要操作的QML对象。