Skip to content

Instantly share code, notes, and snippets.

@chalup
Created August 19, 2013 10:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chalup/6267728 to your computer and use it in GitHub Desktop.
Save chalup/6267728 to your computer and use it in GitHub Desktop.
Abominable helper for defining Qt properties.
#ifndef PROPERTYHELPER_H
#define PROPERTYHELPER_H
#define PROPERTY_HELPER(type,name,getter,setter,signal) \
public: \
type getter() const { return p_##name; } \
void setter(type value) { \
if (p_##name == value) return; \
p_##name = value; \
emit signal(value); \
} \
private: \
type p_##name; \
#endif // PROPERTYHELPER_H
@chalup
Copy link
Author

chalup commented Aug 19, 2013

Sample usage:

#include <QObject>

#include "propertyhelper.h"

class QmlGameUi : public QObject
{
    Q_OBJECT
    Q_PROPERTY(int score READ score WRITE setScore NOTIFY scoreChanged)

public:
    explicit QmlGameUi(QObject *parent = 0);

public: // property getters and setters
    PROPERTY_HELPER(int,score,score,setScore,scoreChanged)

signals: // property notify signals
    void scoreChanged(int value);
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment