0
Qtで一種の信号をブロードキャストする方法を探しています。 login
が呼び出されると、その後logged()
信号がlogout()
焼成し、loggedOut()
信号さQt信号をすべてのオブジェクトのインスタンスにブロードキャストします。
class Auth : public QObject
{
Q_OBJECT
public:
Auth() ;
Q_INVOKABLE bool isLogged() const ;
Q_INVOKABLE void reconnect() ;
Q_INVOKABLE void login(QString mail, QString password) ;
Q_INVOKABLE void logout() ;
protected:
static QString token_ ;
signals:
void error(QString message) ;
void logged() ;
void loggedOut() ;
};
: は私の設計では、私はC++とQML側の内部で使用することができますAuth
オブジェクトを得ました。私はこのコードを持っているQMLの一部で
の1-
:Auth auth ;
auth.logout() ;
2つのAuth
オブジェクト:
Auth {
id: auth
onError: console.log("auth error")
onLogged: console.log("auth logged")
onLoggedOut: console.log("auth logged out")
}
2 - そして、私はいくつかの失敗例に行うことができ、C++側で
1から2までは同じではないので、一方から放出されたloggedOut
はもう一方で発射されません。これは問題ありません。
今私がしようとしているのは、Auth
のすべてのインスタンスにloggedOut
シグナルをブロードキャストする方法を持つことです。私はAuth
の共通インスタンスをC++とqmlの間で共有することを避けたいと思います。
標準的な方法はありますか?
私は最初の方法を実装しました。私は第二に切り替えることを考えていましたが、厳密には同等ではありません。イベントを誘発する能力が失われてしまうようです。 – Falco