[Interest] Qt::Alignment and MetaObject System

Martin Koller kollix at aon.at
Thu Aug 29 17:11:57 CEST 2013


I'd like to programmatically get the enum values for Qt::Alignment (Qt::AlignmentFlag) as strings.

I do this in my code already for e.g. SizePolicy like that:

    int idx = QSizePolicy::staticMetaObject.indexOfEnumerator("Policy");
    QMetaEnum metaEnum = QSizePolicy::staticMetaObject.enumerator(idx);

    for (int i = 0; i < metaEnum.keyCount(); i++)
      hor->appendId(metaEnum.value(i), metaEnum.key(i));
      ver->appendId(metaEnum.value(i), metaEnum.key(i));

However how can I do the same with this Qt::AlignmentFlag enum which is not defined inside a QObject ?

I even could not get it to work when I have an own QObject derived class, like:

#include <QObject>
#include <QMetaEnum>
#include <iostream>

class Object : public QObject

  Q_PROPERTY(Qt::Alignment alignment READ getAlignment)

    Qt::Alignment getAlignment() const { return Qt::AlignCenter; }

    void printEnums()
      for (int i = 0; i < QObject::staticMetaObject.enumeratorCount(); i++)
        std::cerr << QObject::staticMetaObject.enumerator(i).name()
                  << " scope:" << QObject::staticMetaObject.enumerator(i).scope() << std::endl;

      for (int i = 0; i < metaObject()->enumeratorCount(); i++)
        std::cerr << metaObject()->enumerator(i).name()
                  << " scope:" << metaObject()->enumerator(i).scope() << std::endl;

Best regards/Schöne Grüße

A: Because it breaks the logical sequence of discussion
Q: Why is top posting bad?

()  ascii ribbon campaign - against html e-mail 
/\  www.asciiribbon.org   - against proprietary attachments

Geschenkideen, Accessoires, Seifen, Kulinarisches: www.bibibest.at

More information about the Interest mailing list