自学内容网 自学内容网

使枚举值支持|(与)运算符

 记录一下,以备以后查阅

enum TestEnum{
     aa,
     bb,
     cc
    };
Q_DECLARE_FLAGS(TestEnums, TestEnum);
Q_DECLARE_OPERATORS_FOR_FLAGS(TestEnums);

①Q_DECLARE_FLAGS将自动创建一个QFlags类的实例,将支持QFlags的函数如setFlag。

②Q_DECLARE_OPERATORS_FOR_FLAGS里面对'|'符号进行了重载,使枚举支持'|'符号。

outputTestEnum(TestEnum::bb | TestEnum::aa | TestEnum::cc);

void MainWindow::outputTestEnum(TestEnums flag)
{
    if(flag.testFlag(aa)){
        qDebug() << "aa";
    }
    if(flag.testFlag(bb)){
        qDebug() << "bb";
    }
    if(flag.testFlag(cc)){
        qDebug() << "cc";
    }
}


原文地址:https://blog.csdn.net/edge0/article/details/136561850

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!