특정 지점에서 작동하지 않을 수도있는 기능이있는 클래스가 있습니다. 사용자에게 표시 할 수있는 오류 메시지를 생성하고 실패시 false를 반환해야합니다. 이 내가있어 무엇 :Qt/QML에 오류 메시지가 표시됩니다.
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)
이 전체 구현은 잘못되었다고 생각합니다. 구조적으로 더 나은 방법이 있다고 확신합니다. 나는 이것에 대한 통찰력과 아이디어에 만족할 것입니다!
qml에 오류 메시지 만 표시 하시겠습니까? – Nejat
@Nejat 예, 전체 UI는 QML입니다. 사용자는 '텍스트'속성이 '만들기'기능에 전달되는 TextField를 채 웁니다. 실패하면 사용자에게 왜 실패했는지 알려주는 오류 메시지가 표시되어야한다고 생각합니다. – xarxer
나는 당신의 제안 된 접근법에 아무런 문제가 없다고 생각한다. 신호/슬롯 메커니즘을 사용하면 C++와 qml 사이에서 의사 소통이 가능하다. – Nejat