zoukankan      html  css  js  c++  java
  • Qt enum使用总结

    一、enum 自省

    const QMetaObject &mo = [ClassName]::staticMetaObject;
    int index = mo.indexOfEnumerator("[EnumName]");
    QMetaEnum me = mo.enumerator(index);

    若 enum 定义在当前类中,则可以简写为

    int index = staticMetaObject.indexOfEnumerator("[EnumName]");
    QMetaEnum me = staticMetaObject.enumerator(index);
    

    二、enum 转换

    1、 enum <-> int

    enum Color { Red, White, Blue};
    Color c = (Color)1;   //c=White
    int i = Red;       //i=0

    2、 enum <-> string

    enum Color { Red, White, Blue};
    QString s = "White";
    int idx = mo.indexOfEnumerator("Color");
    QMetaEnum iEnum = mo.enumerator(idx);
    int val = iEnum.keysToValue(s.toAscii());
    Color c = (Color)val ;

      

  • 相关阅读:
    五一训练礼包 — B
    五一训练礼包—坐标问题
    单链表
    顺序表
    链表
    基础DP(3)
    基础DP(2)
    基础DP(1)
    分治法
    最小表示法
  • 原文地址:https://www.cnblogs.com/FindSelf/p/4901520.html
Copyright © 2011-2022 走看看