QFlags实现枚举并列

Qt的很多属性参数都是可以通过或运算进行多属性设置,
最典型的是左上,左|上

如果是我们自己实现相应功能需要处理的

enum Test{
	a=0x01,
	b=0x02,
	c=0x04,
	d=0x08,
	e=0x10,
	f=0x20
}
Q_DECLARE_FLAGS(Tests,Test)
Q_DECLARE_OPERATORS_FOR_FLAGS(Tests)

使用的时候

void test(Tests test)
{
	if(test & a)
		qDebug()<<"aa";
	if(test & b)
		qDebug()<<"bb";
	if(test & c)
		qDebug()<<"cc";
	if(test & d)
		qDebug()<<"dd";
	if(test & e)
		qDebug()<<"ee";
}

上述方法即可实现相应的功能

你可能感兴趣的:(Qt,数据结构)