我有一个类的函数在某些时候可能会或可能不会失败。它应该产生一条错误消息,可以向用户显示并在失败时返回 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)
整个实现感觉不对,我相信有更好的架构方式来实现。如果对此有一些见解和想法,我会很高兴!
最佳答案
我觉得你的方法还不错。
无论如何,您也可以通过例如来做到这一点。使用 QObject::setProperty()
直接从 C++ 设置属性,或者通过 QMetaObject::invokeMethod
调用 QML 方法为您更改属性,但您必须存储 (或每次查找)您要操作的 QML 对象。
关于c++ - 在 Qt/QML 中显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25972075/