0

Here is a code exemple:

#include <QDebug>

enum Pouet
{
    F1 = 1,
    F2 = 2,
    F3 = 4,
};
Q_DECLARE_FLAGS(Pouets, Pouet)
Q_DECLARE_METATYPE(Pouets)
Q_DECLARE_OPERATORS_FOR_FLAGS(Pouets)

int main(int argc, char *argv[])
{

    Pouets p = F1|F3;
    qDebug()<<p;
    qDebug()<<QVariant(p).toString();
    qDebug()<<QVariant(QVariant(p).toString()).value<Pouets>();

}

Output:

QFlags(0x1|0x4)
"5"
QFlags()

Please, what is wrong here? I simply can't retrieve a QFlag previously stored in a QVariant?

eyllanesc
  • 235,170
  • 19
  • 170
  • 241
NiHoT
  • 342
  • 5
  • 17
  • 1
    try with this: `enum Pouet { F1 = 1, F2 = 2, F3 = 4, }; Q_DECLARE_FLAGS(Pouets, Pouet) Q_DECLARE_METATYPE(Pouet) Q_DECLARE_METATYPE(Pouets) Q_DECLARE_OPERATORS_FOR_FLAGS(Pouets) int main(int argc, char *argv[]) { Pouets p = F1|F3; qDebug()<

    (); qDebug()<< ps; } `

    – eyllanesc Sep 12 '17 at 19:23
  • Yes it works! Thx – NiHoT Sep 13 '17 at 08:04
  • 1
    If I post my answer you would mark it as correct. :P – eyllanesc Sep 13 '17 at 08:08

0 Answers0