我的主要目标是在*.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)