zoukankan      html  css  js  c++  java
  • QFlags使用

    #define Q_DECLARE_FLAGS(Flags, Enum)\
    typedef QFlags<Enum> Flags;

    #ifndef TESTCLASS_H
    #define TESTCLASS_H

    #include <QFlags>

    class TestClass
    {
    public:
        enum Option {
            OptionA = 0x1,  // 0x000001
            OptionB = 0x2,  // 0x000010
            OptionC = 0x4,  // 0x000100
            OptionD = 0x8,  // 0x001000
            OptionE = 0x10 // 0x010000
                      // ... some more options with value which is a power of two
                  };
        Q_DECLARE_FLAGS(Options, Option)
        };

    Q_DECLARE_OPERATORS_FOR_FLAGS(TestClass::Options)

    #endif // TESTCLASS_H

    #include <QtCore/QCoreApplication>
    #include "testclass.h"
    #include <QDebug>

    void test (TestClass::Options flag)
    {
      if (flag.testFlag(TestClass::OptionA))
        qDebug() << "A";
      if (flag.testFlag(TestClass::OptionB))
        qDebug() << "B";
    }

    int main()
    {
      test (TestClass::OptionA | TestClass::OptionB);
      //test (0x1);  // error
    }

    TODO :Q_FLAGS()宏不知道怎么用。。。。

  • 相关阅读:
    OC语言前期准备
    C语言指针
    C语言字符串
    C语言数组
    python语法
    shell脚本命令 运行python文件&python命令行运行python代码
    HTTP Status完整枚举
    CRON表达式
    mybatis-generator生成的mapper中的
    iOS事件的响应和传递机制
  • 原文地址:https://www.cnblogs.com/cute/p/1991059.html
Copyright © 2011-2022 走看看