• Q_DECLARE_FLAGS用法


    点击查看代码
    class Widget : public QWidget
    {
        Q_OBJECT
    
    public:
        enum languageType
        {
            inValidValue=0x0,//无效值(调用testFlag()时这个值是无效的,除0之外)
            cPlusPlus,
            cSharp,
            goLang
        };
        Q_DECLARE_FLAGS(languageTypes,languageType)//第一步
        Widget(QWidget *parent = nullptr);
        ~Widget();
        void flagsTest(languageTypes girl);
    private:
        Ui::Widget *ui;
    };
    Q_DECLARE_OPERATORS_FOR_FLAGS(Widget::languageTypes)//第二步(里面对'|'符号进行了重载,使枚举支持'|'符号)
    点击查看代码
    Widget::Widget(QWidget *parent)
        : QWidget(parent)
        , ui(new Ui::Widget)
    {
        ui->setupUi(this);
        flagsTest(cPlusPlus|cSharp|goLang);//第三步
    }
    
    void Widget::flagsTest(languageTypes language)
    {
        if(language.testFlag(cPlusPlus))
        {
            qDebug()<<"cPlusPlus";
        }
        if(language.testFlag(cSharp))
        {
            qDebug()<<"cSharp";
        }
        if(language.testFlag(goLang))
        {
            qDebug()<<"goLang";
        }
    }

    运行结果:

    参考自:https://www.xuebuyuan.com/210160.html

    qt帮助手册有详细说明(QFlags)

  • 相关阅读:
    DcotrineFixtureBundle学习
    php方法(1)
    学习笔记(2)
    微信access_token的获取
    学习笔记(1)
    与你相遇——博客园
    单例模式
    Java集合
    sql 优化
    缓存与数据库的数据一致性的解决方案(转)
  • 原文地址:https://www.cnblogs.com/YLJ666/p/14924752.html
Copyright © 2020-2023  润新知