对于一些具有相同属性的控件的配置的保存

这一段时间来,工作方面遇到了需要保存配置的情况。
我采用的方式是使用文件的读写实现的配置的保存和读取,在这里面我遇到了一个情况就是对于很多个相同属性的控件的属性的保存问题,本来采用的是使用1和0表示按钮的选中与否,但是因为控件比较多,由于涉及的需要,那一页上有着二十多个按钮,对于此,如果采用1和0的方式表示,会显得很是繁琐。
后来,灵机一动,是用了一个int类型的各个位进行存储。
因为int类型是32位,最多可以表示32个控件的状态,足够满足我的需求了,而且简化了存储的大小。
具体的保存配置和读取配置的代码如下:

//保存配置
unsigned int unCheckStatus = 0;
for (int i(0); i<m_vecRangeBtns.count(); i++)
{
	if (m_vecRangeBtns[i]->isChecked()
	{
		unChecked |= (0X1 << i);
	}
}
//读取配置
unsigned int unTemp = xxx.toInt();//通过读取到固定的位置,得到这个值,并转化为int类型
for (int i(0); i<m_vecRangeBtns.count(); i++)
{
	//这里需要注意的是,最好加上(),因为移位运算符的优先级比较低,如果不加,可能会出现意料之外的错误。
	m_vecRangeBtns[i]->setChecked((unTemp & (0X1 << i)) >> i);
}

总结:
对于很多个相同属性的控件的配置的保存,如果只有两种装填,则可以采用“位”判断的方式,这样可以简化配置的保存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值