小编Ale*_*nko的帖子

如何将C++代码中定义的单例对象的信号连接到QML组件?

我的主要目标是在*.qml文件中定义QML组件时从单例对象接收信号.

假设我在C++代码中定义了一个单例对象,如下所示:

class MySingleton : public QObject
{
    Q_OBJECT

    Q_PROPERTY(QString value READ value WRITE setValue NOTIFY valueChanged)

    typedef QObject Base;
public:

    static MySingleton* instance();

    const QString& value() const;
    void setValue(const QString& value);

signals:
    void valueChanged();

private:
    MySingleton(QObject* parent = nullptr);
    QString m_value;
};
Run Code Online (Sandbox Code Playgroud)

在MySingleton.cpp中:

MySingleton* MySingleton::instance()
{
    static MySingleton* obj = new MySingleton();
    return obj;
}

const QString& MySingleton::value() const
{
    return m_value;
}

void MySingleton::setValue(const QString& value)
{
    if (value != m_value) {
        m_value = value;
        emit valueChanged();
    } …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qt5

5
推荐指数
1
解决办法
3778
查看次数

标签 统计

c++ ×1

qml ×1

qt ×1

qt5 ×1