找回密码
 立即注册
收起左侧

^ C++ 的用法

9
回复
13994
查看
[复制链接]

尚未签到

来源: 2013-7-17 15:08:12 显示全部楼层 |阅读模式
1Qter豆
不太明白^ 的意思,比如这句话   titleItem->setFlags(titleItem->flags()^Qt::ItemIsEditable) ,^的作用是啥呢。

最佳答案

查看完整内容

在c语言中,^是按位异或,要转化成二进制数才能计算。 计算规则是不同数则为1,相同则为0 楼主你自己看一下该语句的执行结果,自己推测出相应的功能。。
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-17 15:08:13 显示全部楼层
在c语言中,^是按位异或,要转化成二进制数才能计算。
计算规则是不同数则为1,相同则为0

楼主你自己看一下该语句的执行结果,自己推测出相应的功能。。
回复

使用道具 举报

尚未签到

2013-7-17 15:21:18 显示全部楼层
异或操作。1^1结果为0。1^0结果为1。0^0结果为0。0^1结果为1
回复

使用道具 举报

尚未签到

2013-7-17 16:02:33 显示全部楼层
楼上说的我懂。但是这句话titleItem->setFlags(titleItem->flags()^Qt::ItemIsEditable) ,为啥不写成titleItem->setFlags(Qt::ItemIsEditable) 这样呢?
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-17 17:37:44 显示全部楼层
本帖最后由 ztzheng 于 2013-7-17 17:40 编辑
xiaopohaibebo 发表于 2013-7-17 16:02
楼上说的我懂。但是这句话titleItem->setFlags(titleItem->flags()^Qt::ItemIsEditable) ,为啥不写成title ...

应该是实现编辑功能的翻转,原来可编辑的话(..x1x),与Qt::ItemIsEditable(010)异或之后变成不可编辑(..x0x),反之亦然~
回复

使用道具 举报

累计签到:11 天
连续签到:1 天
2013-7-19 16:03:05 显示全部楼层
Qt::Editable应该是个常量,如果titleItem->flags()函数的返回值不等于它,就执行函数titleItem->setFlags(1)置位。如果相同则titleItem->setFlags(0)。对的话请给Qter豆
回复

使用道具 举报

累计签到:11 天
连续签到:1 天
2013-7-19 16:05:22 显示全部楼层
你要查下Qt::Editable是常量还是函数,楼上说是函数,这个应该是常量
回复

使用道具 举报

累计签到:11 天
连续签到:1 天
2013-7-19 16:08:14 显示全部楼层
如果titleItem的状态flag是可编辑的(就是等于Qt::Editable),则titleItem控件标志位置0(setFlags(0)),否则置1(setFlags(1))。分别有什么现象,请自查帮助
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-22 09:36:12 显示全部楼层
其实你要是不理解,你可以下记下来,等更进一层的时候在回头看,或许就明白了。
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-22 09:37:31 显示全部楼层
^这个符号是异或,双目运算。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了