Script for generating Qt property

I wish QtCreator had some helpful utilities like this one. It’s just boring to write generic getter/setter stuff for properties by hand.

cls = "BulletQMLBody"
names = ["velocityX", "velocityY", "velocityZ", "angleVelocityX", "angleVelocityY", "angleVelocityZ"]
names = ["float "+x for x in names]

%(TYPE)s %(NAME)s();
void %(SETTER)s(const %(TYPE)s %(NAME)s);
%(TYPE)s m_%(NAME)s;"""

%(TYPE)s %(CLASS)s::%(NAME)s()
    return m_%(NAME)s;

void %(CLASS)s::%(SETTER)s(const %(TYPE)s %(NAME)s)
    m_%(NAME)s = %(NAME)s;

def getData(aCls,aType,aName):
    return    {
    "CLASS": aCls,
    "TYPE" : aType,
    "NAME": aName,
    "SETTER" : "set" + aName[0].upper() + aName[1:]
def genHeader(*args):
    return HEADER_TEMPLATE % getData(*args)

def genImpl(*args):
    return IMPL_TEMPLATE % getData(*args)

for n in names:
    t,n = n.split();
    print genHeader(cls, t, n)
for n in names:
    t,n = n.split()
    print genImpl(cls, t, n)


Q_PROPERTY(float velocityX READ velocityX WRITE setVelocityX)
float velocityX();
void setVelocityX(const float velocityX);
float m_velocityX;


float BulletQMLBody::velocityX()
    return m_velocityX;

void BulletQMLBody::setVelocityX(const float velocityX)
    m_velocityX = velocityX;

One thought on “Script for generating Qt property

Leave a Reply

Your email address will not be published. Required fields are marked *