QML использует C ++ функцию с параметрами - PullRequest
2 голосов
/ 12 февраля 2020

Я использовал виджеты в своем приложении, но я перехожу на qml из-за внешнего вида, но я намерен продолжать использовать C ++ в банке

class Usuario : public QObject{

    Q_OBJECT

    Q_PROPERTY(bool login WRITE login)

public:

    Usuario(QObject *parent = nullptr);
    ~Usuario();

    static bool login(const QString& usuario, const QString& senha);

};

При компиляции я получаю ошибку указывая, что функция не получает никаких аргументов, так как я могу вызвать функцию входа в систему в qml?

1 Ответ

3 голосов
/ 12 февраля 2020

Вы путаете понятия, Q_PROPERTY служит не для представления функций или методов, а для создания свойства (дополнительная информация здесь ), вам следует использовать Q_INVOKABLE или Q_SLOT:

class Usuario : public QObject{
    Q_OBJECT
public:
    Usuario(QObject *parent = nullptr);
    ~Usuario();
    <b>Q_INVOKABLE</b> static bool login(const QString& usuario, const QString& senha);
    // or
    // Q_SLOT static bool login(const QString& usuario, const QString& senha);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...